From 10e2bc6ad1d4fe7d2bb702aa2f0de5d4dd0a1007 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Tue, 4 Feb 2025 22:01:18 +0800 Subject: [PATCH 01/42] Add files via upload --- AMAIStrategyManager.pl | 2161 ++++++++++++---------- Languages/Chinese/StrategyManager.txt | 53 + Languages/Deutsch/StrategyManager.txt | 53 + Languages/English/StrategyManager.txt | 53 + Languages/French/StrategyManager.txt | 53 + Languages/Norwegian/StrategyManager.txt | 53 + Languages/Portuguese/StrategyManager.txt | 53 + Languages/Romanian/StrategyManager.txt | 53 + Languages/Russian/StrategyManager.txt | 53 + Languages/Spanish/StrategyManager.txt | 53 + Languages/Swedish/StrategyManager.txt | 53 + Manager_language.txt | 1 + SetManagerLanguage.bat | 21 + 13 files changed, 1699 insertions(+), 1014 deletions(-) create mode 100644 Languages/Chinese/StrategyManager.txt create mode 100644 Languages/Deutsch/StrategyManager.txt create mode 100644 Languages/English/StrategyManager.txt create mode 100644 Languages/French/StrategyManager.txt create mode 100644 Languages/Norwegian/StrategyManager.txt create mode 100644 Languages/Portuguese/StrategyManager.txt create mode 100644 Languages/Romanian/StrategyManager.txt create mode 100644 Languages/Russian/StrategyManager.txt create mode 100644 Languages/Spanish/StrategyManager.txt create mode 100644 Languages/Swedish/StrategyManager.txt create mode 100644 Manager_language.txt create mode 100644 SetManagerLanguage.bat diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index ca7f41d06..5b70a9c67 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -1,1014 +1,1147 @@ -#! /usr/bin/perl5 -w - -use strict; -use Tk; -use Tk::TextUndo; -use Tk::Table; -use Tk::NoteBook; - -BEGIN{ - if($^O eq 'MSWin32'){ - require Win32::Console; - #Win32::Console::Free(); - } -} - -my $fdialogbug = 0; - -if($] >= 5.008004) { - $fdialogbug = 1; -} - -my $main = MainWindow->new(-title => 'AMAI Strategy Manager'); -my $lframe = $main->Frame->pack(-side => 'left'); -my $race; -my $ver; -my $strat; -my $profile; -my $rframe = $main->Frame->pack(-side => 'right'); -my $notebook = $rframe->NoteBook()->pack(-side => 'left'); -my $stratframe = $notebook->add("strat", -label => 'Strategies'); -my $profileframe = $notebook->add("profile", -label => 'Profiles'); -my $stratlb = $stratframe->Listbox(-height => 0)->pack; -tie $strat, "Tk::Listbox", $stratlb; -my $profilelb = $profileframe->Listbox(-height => 0)->pack; -tie $profile, "Tk::Listbox", $profilelb; -my $bframe = $rframe->Frame->pack(-side => 'right'); -$bframe->Button( - -text => 'New', - -command => sub { - if ($notebook->raised eq 'strat') { - InsertStratSub("$ver\\$race\\New.ais", $ver, $race); - UpdateStratList($stratlb, $ver, $race) - } - else { - InsertProfileSub("$ver\\New.aip", $ver); - UpdateProfileList($profilelb, $ver) - } - }, - -width => 6)->pack; -$bframe->Button( - -text => 'Extract', - -command => sub { - if ($notebook->raised eq 'strat') { - ExtractStrat($main, $ver, $race, $strat) - } - else { - ExtractProfile($main, $ver, $profile) - } - }, - -width => 6)->pack; -$bframe->Button( - -text => 'Insert', - -command => sub { - if ($notebook->raised eq 'strat') { - InsertStrat($main, $ver, $race); - UpdateStratList($stratlb, $ver, $race) - } - else { - InsertProfile($main, $ver); - UpdateProfileList($profilelb, $ver) - } - }, - -width => 6)->pack; -$bframe->Button( - -text => 'Copy', - -command => sub { - if ($notebook->raised eq 'strat') { - CopyStrat($ver, $race, $strat); - UpdateStratList($stratlb, $ver, $race) - } - else { - CopyProfile($ver, $profile); - UpdateProfileList($profilelb, $ver) - } - }, - -width => 6)->pack; -$bframe->Button( - -text => 'Remove', - -command => sub { - if ($notebook->raised eq 'strat') { - RemoveStrat($main, $ver, $race, $strat); - UpdateStratList($stratlb, $ver, $race) - } - else { - RemoveProfile($main, $ver, $profile); - UpdateProfileList($profilelb, $ver) - } - }, - -width => 6)->pack; -$bframe->Button( - -text => 'Edit', - -command => sub { - if ($notebook->raised eq 'strat') { - EditStrat($main, $ver, $race, $strat) - } - else { - EditProfile($main, $ver, $profile) - } - }, - -width => 6)->pack; -$bframe->Button( - -text => 'Lock', - -command => sub { - if ($notebook->raised eq 'strat') { - SetRaceOption($ver, $race, 'debug_strategy', "STRAT_$strat->[0]") - } - else { - SetVerOption($ver, 'debug_profile', GetArrayIndex($profile, $profilelb->get(0, 'end'))) - } - }, - -width => 6)->pack; -$bframe->Button( - -text => 'Unlock', - -command => sub { - if ($notebook->raised eq 'strat') { - SetRaceOption($ver, $race, 'debug_strategy', -1) - } - else { - SetVerOption($ver, 'debug_profile', -1) - } - }, - -width => 6)->pack; -$bframe->Button( - -text => 'Quit', - -command => [$main => 'destroy'], - -width => 6)->pack; - -open(VERFILE, "Versions.txt") or die "File not found!"; -my @vers = ; -close(VERFILE); -chomp foreach (@vers); -my $raceopt; -my $veropt; -$veropt = $lframe->Optionmenu( - -command => sub { $raceopt -> destroy if($raceopt); - $raceopt = $lframe->Optionmenu( - -command => sub { UpdateStratList($stratlb, $ver, $race) }, - -variable => \$race, - -width => 10)->pack(-after => $veropt); - $raceopt -> addOptions(GetRaces($ver)); - UpdateStratList($stratlb, $ver, $race); - UpdateProfileList($profilelb, $ver) }, - -variable => \$ver, - -width => 10)->pack; -$veropt->addOptions(@vers); -$lframe->Button( - -text => 'Edit Racial Builds', - -command => sub { EditRacialBuilds($main, $ver, $race) }, - -width => 15)->pack; -$lframe->Button( - -text => 'Edit Global Settings', - -command => sub { EditSettings($main, "$ver\\GlobalSettings.txt") }, - -width => 15)->pack; -$lframe->Button( - -text => 'Edit Racial Settings', - -command => sub { EditSettings($main, "$ver\\$race\\Settings.txt") }, - -width => 15)->pack; -$lframe->Button( - -text => 'Compile', - -command => sub { system("Make$ver.bat", "1") }, - -width => 15)->pack; -$lframe->Button( - -text => 'Compile, Optimize', - -command => sub { system("MakeOpt$ver.bat", "1") }, - -width => 15)->pack; -MainLoop; - -sub GetRaces { - my $ver = shift; - open(RACEFILE, "$ver\\Races.txt") or die "File <$ver\\Races.txt> not found!"; - my @races = ; - close(RACEFILE); - chomp foreach (@races); - foreach (@races) { - /^([^\t]*)\t/; - $_ = $1; - }; - return @races; -} - -sub GetArrayIndex { - my ($x, @a) = @_; - my $i = 0; - return -1 unless (@$x[0]); - foreach (@a) { - return $i if (@$x[0] eq $_); - $i++; - } - return -1; -} - -sub SetRaceOption { - my ($ver, $race, $opt, $val) = @_; - open(SETFILE, "$ver\\$race\\Settings.txt") or die "File <$ver\\$race\\Settings.txt> not found!"; - my @setfile = (); - my $optionexists = 0; - while() { - if (/^$opt\t[^\t]*\t(.*)/) { - push @setfile, "$opt\t$val\t$1\n"; - $optionexists = 1; - } - else { - push @setfile, $_; - } - } - push @setfile, "$opt\t$val\t\n" if ($optionexists == 0); - close(SETFILE); - open(SETFILE, ">$ver\\$race\\Settings.txt") or die "File <$ver\\$race\\Settings.txt> not found!"; - print SETFILE @setfile; - close(SETFILE); -} - -sub SetVerOption { - my ($ver, $opt, $val) = @_; - open(SETFILE, "$ver\\GlobalSettings.txt") or die "File <$ver\\GlobalSettings.txt> not found!"; - my @setfile = (); - my $optionexists = 0; - while() { - if (/^$opt\t[^\t]*\t(.*)/) { - push @setfile, "$opt\t$val\t$1\n"; - $optionexists = 1; - } - else { - push @setfile, $_; - } - } - push @setfile, "$opt\t$val\t\n" if ($optionexists == 0); - close(SETFILE); - open(SETFILE, ">$ver\\GlobalSettings.txt") or die "File <$ver\\GlobalSettings.txt> not found!"; - print SETFILE @setfile; - close(SETFILE); -} - -sub GetStratList { - my $ver = shift; - my $race = shift; - return () unless ($ver and $race); - open(STRATFILE, "$ver\\$race\\Strategy.txt") or die "File <$ver\\$race\\Strategy.txt> not found!"; - my @stratlist = (); - ; - while () { - if (/^([^\t]*)\t/) { - push @stratlist, $1; - } - }; - close(STRATFILE); - return @stratlist; -}; - -sub UpdateStratList { - my $stratlb = shift; - my $ver = shift; - my $race = shift; - $stratlb->delete(0, $stratlb->index('end')-1); - $stratlb->insert('end', GetStratList($ver, $race)); -} - -sub GetProfileList { - my $ver = shift; - return () unless ($ver); - open(PROFILEFILE, "$ver\\Profiles.txt") or die "File <$ver\\Profiles.txt> not found!"; - my @profilelist = (); - ; - while () { - if (/^([^\t]*)\t/) { - push @profilelist, $1; - } - }; - close(PROFILEFILE); - return @profilelist; -}; - -sub UpdateProfileList { - my ($profilelb, $ver) = @_; - $profilelb->delete(0, $profilelb->index('end')-1); - $profilelb->insert('end', GetProfileList($ver)); -} - -sub RemoveStrat { - my ($main, $version, $race, $strat) = @_; - return unless @$strat[0]; - my $response = $main->messageBox(-message => 'Are you sure you want to remove that strategy?', -title => 'Really?', -type => 'YesNo', -default => 'no'); - return if ($response eq 'no' or $response eq 'No'); - my $stratname = @$strat[0]; - open(STRATFILE, "$version\\$race\\Strategy.txt") or die "File <$version\\$race\\Strategy.txt> not found!"; - my @stratfile = (); - while () { - unless (/^$stratname\t/) { - push(@stratfile, $_); - } - } - close(STRATFILE); - open(STRATFILE, ">$version\\$race\\Strategy.txt") or die "File <$version\\$race\\Strategy.txt> could not be opened for writing!"; - print STRATFILE @stratfile; - close(STRATFILE); - @stratfile = (); - open(AIFILE, "$version\\$race\\BuildSequence.ai") or die "File <$version\\$race\\BuildSequence.ai> not found!"; - my @aifile = (); - while () { - if (/\bfunction\s*init_strategy_$stratname\b/) { - while (( or die "Strategy not complete in Build Sequence") !~ /endfunction/) {} - while (( or die "Strategy not complete in Build Sequence") !~ /endfunction/) {} - } - else { - push(@aifile, $_); - } - } - close(AIFILE); - open(AIFILE, ">$version\\$race\\BuildSequence.ai") or die "File <$version\\$race\\BuildSequence.ai> could not be opened for writing!"; - print AIFILE @aifile; - close(AIFILE); -} - -sub RemoveProfile { - my ($main, $version, $profile) = @_; - return unless @$profile[0]; - my $response = $main->messageBox(-message => 'Are you sure you want to remove that profile?', -title => 'Really?', -type => 'YesNo', -default => 'no'); - return if ($response eq 'no' or $response eq 'No'); - my $profilename = @$profile[0]; - open(PROFILEFILE, "$version\\Profiles.txt") or die "File <$version\\Profiles.txt> not found!"; - my @profilefile = (); - while () { - unless (/^$profilename\t/) { - push(@profilefile, $_); - } - } - close(PROFILEFILE); - open(PROFILEFILE, ">$version\\Profiles.txt") or die "File <$version\\Profiles.txt> could not be opened for writing!"; - print PROFILEFILE @profilefile; - close(PROFILEFILE); -} - -sub CopyStrat { - my ($version, $race, $strat) = @_; - return unless @$strat[0]; - my $stratname = @$strat[0]; - ExtractStratSub('tmp', $version, $race, $stratname); - InsertStratSub('tmp', $version, $race); - system "del tmp"; -} - -sub CopyProfile { - my ($version, $profile) = @_; - return unless @$profile[0]; - my $profilename = @$profile[0]; - ExtractProfileSub('tmp', $version, $profilename); - InsertProfileSub('tmp', $version); - system "del tmp"; -} - -sub ExtractStratSub { - my ($filename, $version, $race, $stratname) = @_; - open(AIFILE, "$version\\$race\\BuildSequence.ai") or die "File <$version\\$race\\BuildSequence.ai> not found!"; - open(STRATFILE, "$version\\$race\\Strategy.txt") or die "File <$version\\$race\\Strategy.txt> not found!"; - open(TARGETFILE, ">$filename") or die "File <$filename> not found!"; - print TARGETFILE "#AMAI 2.0 Strategy\n"; - my $line = ; - while (($line = ( or die "Strategy not found in Strategy Table")) !~ /^$stratname\t/) {} - print TARGETFILE $line; - while (($line = ( or die "Strategy not found in Build Sequence")) !~ /\bfunction\s*init_strategy_$stratname\b/) {} - print TARGETFILE $line; - while (($line = ( or die "Strategy not complete in Build Sequence")) !~ /endfunction/) {print TARGETFILE $line;} - print TARGETFILE $line; - while (($line = ( or die "Strategy not complete in Build Sequence")) !~ /endfunction/) {print TARGETFILE $line;} - print TARGETFILE $line; - close(TARGETFILE); - close(AIFILE); - close(STRATFILE); -} - -sub ExtractStrat { - my ($main, $version, $race, $strat) = @_; - return unless @$strat[0]; - my $stratname = @$strat[0]; - my $types = [['AMAI Strategies', '.ais']]; - $types = [['AMAI Strategies', '.ais'],[]] if ($fdialogbug); - my $filename = $main->getSaveFile( - -defaultextension => '.ais', - -filetypes => $types ); - return unless ($filename and ($filename ne "")); - ExtractStratSub($filename, $version, $race, $stratname); -} - -sub ExtractProfileSub { - my ($filename, $version, $profilename) = @_; - open(PROFILEFILE, "$version\\Profiles.txt") or die "File <$version\\Profiles.txt> not found!"; - open(TARGETFILE, ">$filename") or die "File <$filename> not found!"; - print TARGETFILE "#AMAI 2.0 Profile\n"; - my $line = ; - while (($line = ( or die "Profile not found in Profile Table")) !~ /^$profilename\t/) {} - print TARGETFILE $line; - close(TARGETFILE); - close(PROFILEFILE); -} - -sub ExtractProfile { - my ($main, $version, $profile) = @_; - return unless @$profile[0]; - my $profilename = @$profile[0]; - my $types = [['AMAI Profiles', '.aip']]; - $types = [['AMAI Profiles', '.aip'],[]] if ($fdialogbug); - my $filename = $main->getSaveFile( - -defaultextension => '.aip', - -filetypes => $types ); - return unless ($filename and ($filename ne "")); - ExtractProfileSub($filename, $version, $profilename); -} - -sub InsertStratSub { - my ($filename, $version, $race) = @_; - my $stratlist = join ',', GetStratList($version, $race); - open(SOURCE, $filename) or die "File <$filename> not found!"; - open(AIFILE, ">>$version\\$race\\BuildSequence.ai") or die "File <$version\\$race\\BuildSequence.ai> not found!"; - open(STRATFILE, ">>$version\\$race\\Strategy.txt") or die "File <$version\\$race\\Strategy.txt> not found!"; - my $line = ; - if ($line !~ /#AMAI 2.0 Strategy/) {die "No AMAI 2.0 Strategy File";} - $line = ; - $line =~ /^([^\t]*)\t/; - my $oldstratname = $1; - my $stratname = $oldstratname; - my $x = 0; - while ($stratlist =~ /\b$stratname\b/) { - $x++; - $stratname = "$oldstratname$x"; - } - - $line =~ s/^$oldstratname/$stratname/; - print STRATFILE $line; - print AIFILE "\n"; - while () { - s/\b(function \w*_)$oldstratname\b/$1$stratname/; - print AIFILE; - } - close(AIFILE); - close(STRATFILE); - close(SOURCE); -} - -sub InsertStrat { - my ($main, $version, $race) = @_; - my $types = [['AMAI Strategies', '.ais']]; - $types = [['AMAI Strategies', '.ais'],[]] if ($fdialogbug); - my $filename = $main->getOpenFile( - -defaultextension => '.ais', - -filetypes => $types ); - return unless ($filename and ($filename ne "")); - InsertStratSub($filename, $version, $race); -} - -sub InsertProfileSub { - my ($filename, $version) = @_; - my $profilelist = join ',', GetProfileList($version); - open(SOURCE, $filename) or die "File <$filename> not found!"; - open(PROFILEFILE, ">>$version\\Profiles.txt") or die "File <$version\\Profiles.txt> not found!"; - my $line = ; - if ($line !~ /#AMAI 2.0 Profile/) {die "No AMAI 2.0 Profile File";} - $line = ; - $line =~ /^([^\t]*)\t/; - my $oldprofilename = $1; - my $profilename = $oldprofilename; - my $x = 0; - while ($profilelist =~ /\b$profilename\b/) { - $x++; - $profilename = "$oldprofilename$x"; - } - - $line =~ s/^$oldprofilename/$profilename/; - print PROFILEFILE $line; - close(PROFILEFILE); - close(SOURCE); -} - -sub InsertProfile { - my ($main, $version) = @_; - my $types = [['AMAI Profiles', '.aip']]; - $types = [['AMAI Profiles', '.aip'],[]] if ($fdialogbug); - my $filename = $main->getOpenFile( - -defaultextension => '.aip', - -filetypes => $types ); - return unless ($filename and ($filename ne "")); - InsertProfileSub($filename, $version); -} - -sub EditStrat { - my ($main, $version, $race, $strat) = @_; - return unless @$strat[0]; - my $edit = $main->Toplevel(-title => 'AMAI Strategy Editor'); - my $lframe = $edit->Frame->pack(-side => 'left'); - my $rframe = $edit->Frame->pack(-side => 'right'); - my $bframe = $rframe->Frame->pack(-side => 'right'); - my $strattable = $rframe->Table(-rows => 37)->pack(-side => 'left'); - open(TIERFILE, "$ver\\$race\\Tiers.txt") or die "File <$ver\\$race\\Tiers.txt> not found!"; - my @tiers = ; - my $tiernum = @tiers; - close(TIERFILE); - my $textheight = 44 / ($tiernum + 1); - my @buildtexttier = (); - $lframe->Label(-text => 'Initalisation Code')->pack; - my $inittext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; - for(my $i=1;$i<=$tiernum;$i++) { - $lframe->Label(-text => "Code for Tier $i")->pack; - $buildtexttier[$i] = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; - } - my $optarrayref = FillTable($strattable, $version, $race, @$strat[0]); - FillTexts($inittext, \@buildtexttier, $version, $race, @$strat[0]); - $bframe->Button( - -text => 'OK', - -command => sub {SaveStrat($edit, $inittext, \@buildtexttier, $strattable, $version, $race, @$strat[0], $optarrayref)}, - -width => 6)->pack; - $bframe->Button( - -text => 'Cancel', - -command => [$edit => 'destroy'], - -width => 6)->pack; - $edit->focusForce; -} - -sub EditProfile { - my ($main, $version, $profile) = @_; - return unless @$profile[0]; - my $edit = $main->Toplevel(-title => 'AMAI Profile Editor'); - my $bframe = $edit->Frame->pack(-side => 'right'); - my $profiletable = $edit->Table(-rows => 37)->pack(-side => 'left'); - my $optarrayref = FillProfileTable($profiletable, $version, @$profile[0]); - $bframe->Button( - -text => 'OK', - -command => sub {SaveProfile($edit, $profiletable, $version, @$profile[0], $optarrayref)}, - -width => 6)->pack; - $bframe->Button( - -text => 'Cancel', - -command => [$edit => 'destroy'], - -width => 6)->pack; - $edit->focusForce; -} - -sub GetVarList { - my ($ver, $var, $race) = @_; - open(VARFILE, "VarDefs.ini") or die "File not found!"; - ; - while() { - chomp; - if (/$var\t(.*)/) { - my $fn = $1; - $fn =~ s/\$RACE\$/$race/g; - close(VARFILE); - open(VARTABLE, "$ver\\$fn") or die "File <$ver\\$fn> not found!"; - my @vt = (); - while () { - /([^\t\n]*)(\t|\n|$)/; - push @vt, $1; - } - close(VARTABLE); - return @vt; - } - } - return $var; -} - -sub ExtendTable { - my ($ver, $race, @table) = @_; - my @outtable = (); - foreach (@table) { - my @l = (); - push @l, $_; - my $b = 1; - while($b) { - $b = 0; - my @lout = (); - foreach (@l) { - if(/\$([^\$]*)\$/) { - my $var = $1; - my $it = $_; - $b = 1; - foreach (GetVarList($ver, $var, $race)) { - my $itrep = $it; - $itrep =~ s/\$$var\$/$_/g; - push @lout, $itrep; - } - } - else { - push @lout, $_; - } - } - @l = @lout; - } - push @outtable, @l; - } - return @outtable; -} - -sub ExtendOptList { - my ($ver, $dummy, @ilist) = @_; - my @olist = ($dummy); - foreach(@ilist) { - if (/\%([^\%]+)\%/) { - push @olist, GetVarList($ver, $1, ''); - } - else { - push @olist, $_; - } - } - return @olist; -} - -sub GetOptList { - my $ver = shift; - open(OPTFILE, "Optionlist.ini") or die "File not found!"; - my %optlist = (); - my @optfile = ; - close(OPTFILE); - @optfile = ExtendTable($ver, '', @optfile); - foreach (@optfile) { - chomp; - /([^:]*):([^:]*)/; - my $optname = $1; - my @optarray = split(',', $2); - @optarray = ExtendOptList($ver, @optarray) if ($optarray[0] eq 'list'); - $optlist{$optname} = \@optarray; - } - return \%optlist; -} - -sub OptionmenuAddOptions { - my ($optmenu, $curval, @optlist) = @_; - foreach (@optlist) { - $optmenu->addOptions($_) unless $_ eq $curval; - } - $optmenu->addOptions($curval); -} - -sub GetUnitLists { - my ($version, $race) = @_; - my @unitlist = (0); - my @buildinglist = (0); - my @upgradelist = (0); - my @herolist = (0); - open(UNITFILE, "$version\\StandardUnits.txt") or die "File <$version\\StandardUnits.txt> not found!"; - while() { - my @line = split("\t", $_); - push @buildinglist, $line[0] if ($line[2] =~ /$race/ and $line[4] eq "BUILDING"); - push @unitlist, $line[0] if (($line[2] =~ /$race/) and ($line[3] !~ /peon|mutated/) and $line[4] eq "UNIT"); - push @upgradelist, $line[0] if (($line[2] =~ /$race/) and ($line[3] =~ /upgrade/)); - push @herolist, $line[0] if (($line[2] =~ /$race|NEUTRAL/) and ($line[3] !~ /mutated/) and ($line[3] =~ /hero/)); - } - close(UNITFILE); - return (\@unitlist, \@buildinglist, \@upgradelist, \@herolist); -} - -sub GetProfileUnitLists { - my ($version, @races) = @_; - my %unitlists; - my %herolists; - foreach (@races) { - my @unitlist = (0); - my @herolist = (0); - $unitlists{$_} = \@unitlist; - $herolists{$_} = \@herolist; - } - open(UNITFILE, "$version\\StandardUnits.txt") or die "File <$version\\StandardUnits.txt> not found!"; - while() { - my @line = split("\t", $_); - foreach (@races) { - push @{$unitlists{$_}}, $line[0] if (($line[3] !~ /dummy|mutated|peon/) and ($line[2] =~ /$_/) and $line[4] eq "UNIT"); - push @{$herolists{$_}}, $line[0] if (($line[3] =~ /hero/) and ($line[3] !~ /mutated/) and ($line[2] =~ /$_/)); - } - } - close(UNITFILE); - return (\%unitlists, \%herolists); -} - -sub FillTable { - my ($strattable, $version, $race, $strat) = @_; - my $optlistref = GetOptList($version); - my %optlist = %$optlistref; - my ($unitlistref, $buildinglistref, $upgradelistref, $herolistref) = GetUnitLists($version, $race); - my @unitlist = @{$unitlistref}; - my @buildinglist = @{$buildinglistref}; - my @upgradelist = @{$upgradelistref}; - my @herolist = @{$herolistref}; - open(STRATFILE, "$version\\$race\\Strategy.txt") or die "File <$version\\$race\\Strategy.txt> not found!"; - my $line = ; - chomp($line); - my @opt = split("\t", $line); - my $l; - my $i = 0; - foreach my $v (@opt) { - $l = $strattable->Label(-text => $v); - $strattable->put($i, 0, $l); - $i++; - } - while (($line = ( or die "Strategy not found in Strategy table.")) !~ /^$strat\t/) {} - chomp($line); - my @optval = split("\t", $line); - $i = 0; - my @optarray = (); - foreach my $v (@optval) { - if ($optlist{$opt[$i]}) { - my @optvalarray = @{$optlist{$opt[$i]}}; - $l = $strattable->Optionmenu( - -variable => \($optarray[$i]), - -width => 25)->pack; - if ($optvalarray[0] eq 'list') { - OptionmenuAddOptions($l, $v, @optvalarray[1..$#optvalarray]); - } - elsif ($optvalarray[0] eq 'unit') { - OptionmenuAddOptions($l, $v, @unitlist); - } - elsif ($optvalarray[0] eq 'building') { - OptionmenuAddOptions($l, $v, @buildinglist); - } - elsif ($optvalarray[0] eq 'hero') { - OptionmenuAddOptions($l, $v, @herolist); - } - else { - OptionmenuAddOptions($l, $v, @upgradelist); - } - } - else { - $l = $strattable->Entry(-width => 25); - $l->insert('end', $v); - } - $strattable->put($i, 1, $l); - $i++; - } - close(STRATFILE); - return \@optarray; -} - -sub FillProfileTable { - my ($profiletable, $version, $profile) = @_; - my $optlistref = GetOptList($version); - my %optlist = %$optlistref; - my ($unitlistref, $herolistref) = GetProfileUnitLists($version, GetRaces($version), 'NEUTRAL'); - my %unitlists = %{$unitlistref}; - my %herolists = %{$herolistref}; - open(PROFILEFILE, "$version\\Profiles.txt") or die "File <$version\\Profiles.txt> not found!"; - my $line = ; - chomp($line); - my @opt = split("\t", $line); - my $l; - my $i = 0; - foreach my $v (@opt) { - $l = $profiletable->Label(-text => $v); - $profiletable->put($i, 0, $l); - $i++; - } - while (($line = ( or die "Profile not found in Profile table.")) !~ /^$profile\t/) {} - chomp($line); - my @optval = split("\t", $line); - $i = 0; - my @optarray = (); - foreach my $v (@optval) { - if ($optlist{$opt[$i]}) { - my @optvalarray = @{$optlist{$opt[$i]}}; - $l = $profiletable->Optionmenu( - -variable => \($optarray[$i]), - -width => 35)->pack; - if ($optvalarray[0] eq 'list') { - OptionmenuAddOptions($l, $v, @optvalarray[1..$#optvalarray]); - } - elsif ($optvalarray[0] eq 'unit') { - OptionmenuAddOptions($l, $v, @{$unitlists{$optvalarray[1]}}); - } - else { - OptionmenuAddOptions($l, $v, @{$herolists{$optvalarray[1]}}); - } - } - else { - $l = $profiletable->Entry(-width => 40); - $l->insert('end', $v); - } - $profiletable->put($i, 1, $l); - $i++; - } - close(PROFILEFILE); - return \@optarray; -} - -sub AssembleTable { - my ($strattable, $optarrayref) = @_; - my @jl = (); - for(my $i=0;$i<$strattable->totalRows;$i++) { - if (defined @{$optarrayref}[$i]) { - push @jl, @{$optarrayref}[$i]; - } - else { - push @jl, $strattable->get($i,1)->get; - } - } - return join "\t", @jl; -} - -sub FillTexts { - my ($inittext, $buildtexttierref, $version, $race, $stratname, @optarray) = @_; - my @buildtexttier = @{$buildtexttierref}; - open(AIFILE, "$version\\$race\\BuildSequence.ai") or die "File <$version\\$race\\BuildSequence.ai> not found!"; - my $line; - while (( or die "Strategy not found in AI File") !~ /\bfunction\s*init_strategy_$stratname\b/) {} - while (($line = ( or die "Strategy not complete in AI File")) !~ /endfunction/) {$inittext->insert('end', $line);} - while (( or die "Strategy not complete in AI File") !~ /\bfunction\s*build_sequence_$stratname\b/) {} - while (( or die "Strategy not complete in AI File") !~ /if.*tier.*==.*$#buildtexttier/) {} - for(my $i=$#buildtexttier;$i>2;$i--) { - my $j = $i-1; - while (($line = ( or die "Strategy not complete in AI File")) !~ /elseif.*tier.*==.*$j/) {$buildtexttier[$i]->insert('end', $line);} - } - my $iflevel = 0; - while ((($line = ( or die "Strategy not complete in AI File")) !~ /\belse\b/) or $iflevel != 0) { - $buildtexttier[2]->insert('end', $line); - $iflevel++ if ($line =~ /\bif/); - $iflevel-- if ($line =~ /endif/); - } - $iflevel = 0; - while ((($line = ( or die "Strategy not complete in AI File")) !~ /endif/) or $iflevel != 0) { - $buildtexttier[1]->insert('end', $line); - $iflevel++ if ($line =~ /\bif/); - $iflevel-- if ($line =~ /endif/); - } - close(AIFILE); -} - -sub SaveStrat { - my ($edit, $inittext, $buildtexttierref, $strattable, $version, $race, $stratname, $optarrayref) = @_; - my @buildtexttier = @{$buildtexttierref}; - my $newstratname = $strattable->get(0,1)->get; - open(STRATFILE, "$version\\$race\\Strategy.txt") or die "File <$version\\$race\\Strategy.txt> not found!"; - my @stratfile = (); - while () { - if (/^$stratname\t/) { - push(@stratfile, AssembleTable($strattable, $optarrayref)); - push(@stratfile, "\n"); - } - else { - push(@stratfile, $_); - } - } - close(STRATFILE); - open(STRATFILE, ">$version\\$race\\Strategy.txt") or die "File <$version\\$race\\Strategy.txt> could not be opened for writing!"; - print STRATFILE @stratfile; - close(STRATFILE); - @stratfile = (); - open(AIFILE, "$version\\$race\\BuildSequence.ai") or die "File <$version\\$race\\BuildSequence.ai> not found!"; - my @aifile = (); - while () { - if (/\bfunction\s*init_strategy_$stratname\b/) { - while (( or die "Strategy not complete in Build Sequence") !~ /endfunction/) {} - while (( or die "Strategy not complete in Build Sequence") !~ /endfunction/) {} - push(@aifile, "function init_strategy_$newstratname takes nothing returns nothing\n"); - push(@aifile, $inittext->get('1.0', 'end')); - push(@aifile, "endfunction\n"); - push(@aifile, "function build_sequence_$newstratname takes nothing returns nothing\n"); - push(@aifile, "if tier == $#buildtexttier then\n"); - for(my $i=$#buildtexttier;$i>2;$i--) { - my $j = $i-1; - push(@aifile, $buildtexttier[$i]->get('1.0', 'end')); - push(@aifile, "elseif tier == $j then\n"); - } - push(@aifile, $buildtexttier[2]->get('1.0', 'end')); - push(@aifile, "else\n"); - push(@aifile, $buildtexttier[1]->get('1.0', 'end')); - push(@aifile, "endif\n"); - push(@aifile, "endfunction\n"); - } - else { - push(@aifile, $_); - } - } - close(AIFILE); - open(AIFILE, ">$version\\$race\\BuildSequence.ai") or die "File <$version\\$race\\BuildSequence.ai> could not be opened for writing!"; - print AIFILE @aifile; - close(AIFILE); - $edit->destroy; -} - -sub SaveProfile { - my ($edit, $profiletable, $version, $profilename, $optarrayref) = @_; - my $newprofilename = $profiletable->get(0,1)->get; - open(PROFILEFILE, "$version\\Profiles.txt") or die "File <$version\\Profiles.txt> not found!"; - my @profilefile = (); - while () { - if (/^$profilename\t/) { - push(@profilefile, AssembleTable($profiletable, $optarrayref)); - push(@profilefile, "\n"); - } - else { - push(@profilefile, $_); - } - } - close(PROFILEFILE); - open(PROFILEFILE, ">$version\\Profiles.txt") or die "File <$version\\Profiles.txt> could not be opened for writing!"; - print PROFILEFILE @profilefile; - close(PROFILEFILE); - $edit->destroy; -} - -sub EditRacialBuilds { - my ($main, $ver, $race) = @_; - my $edit = $main->Toplevel(-title => 'AMAI Racial Builds Editor'); - my $lframe = $edit->Frame->pack(-side => 'left'); - my $rframe = $edit->Frame->pack(-side => 'right'); - my $textheight = 22; - $lframe->Label(-text => 'Initalisation Code')->pack; - my $inittext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; - $lframe->Label(-text => "Build Code")->pack; - my $buildtext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; - LoadRacialBuild($inittext, $buildtext, $ver, $race); - $rframe->Button( - -text => 'OK', - -command => sub {SaveRacialBuild($edit, $inittext, $buildtext, $ver, $race)}, - -width => 6)->pack; - $rframe->Button( - -text => 'Cancel', - -command => [$edit => 'destroy'], - -width => 6)->pack; - $edit->focusForce; -} - -sub LoadRacialBuild { - my ($inittext, $buildtext, $ver, $race) = @_; - open(AIFILE, "$ver\\$race\\BuildSequence.ai") or die "File <$ver\\$race\\BuildSequence.ai> not found!"; - my $line; - while (( or die "global_init_strategy not in Build Sequence") !~ /function global_init_strategy/) {} - while (($line = ( or die "global_init_strategy not complete in Build Sequence")) !~ /endfunction/) {$inittext->insert('end', $line);} - while (( or die "global_build_sequence not in Build Sequence") !~ /function global_build_sequence/) {} - while (($line = ( or die "global_build_sequence not complete in Build Sequence")) !~ /endfunction/) {$buildtext->insert('end', $line);} - close(AIFILE); -} - -sub SaveRacialBuild { - my ($edit, $inittext, $buildtext, $ver, $race) = @_; - open(AIFILE, "$ver\\$race\\BuildSequence.ai") or die "File <$ver\\$race\\BuildSequence.ai> not found!"; - my @aifile = (); - while () { - if (/\bfunction\s*global_init_strategy\b/) { - while (( or die "Global Builds not complete in Build Sequence") !~ /endfunction/) {} - while (( or die "Global Builds not complete in Build Sequence") !~ /endfunction/) {} - push(@aifile, "function global_init_strategy takes nothing returns nothing\n"); - push(@aifile, $inittext->get('1.0', 'end')); - push(@aifile, "endfunction\n"); - push(@aifile, "function global_build_sequence takes nothing returns nothing\n"); - push(@aifile, $buildtext->get('1.0', 'end')); - push(@aifile, "endfunction\n"); - } - else { - push(@aifile, $_); - } - } - close(AIFILE); - open(AIFILE, ">$ver\\$race\\BuildSequence.ai") or die "File <$ver\\$race\\BuildSequence.ai> could not be opened for writing!"; - print AIFILE @aifile; - close(AIFILE); - $edit->destroy; -} - -sub EditSettings { - my ($main, $file) = @_; - my $edit = $main->Toplevel(-title => 'AMAI Settings Editor'); - my $lframe = $edit->Frame->pack(-side => 'left'); - my $rframe = $edit->Frame->pack(-side => 'right'); - my $table = $lframe->Table(-rows => 37)->pack(-side => 'left'); - my $rownumber = LoadSettings($table, $file); - $rframe->Button( - -text => 'OK', - -command => sub {SaveSettings($edit, $table, $file, $rownumber)}, - -width => 6)->pack; - $rframe->Button( - -text => 'Cancel', - -command => [$edit => 'destroy'], - -width => 6)->pack; - $edit->focusForce; -} - -sub LoadSettings { - my ($table, $file) = @_; - open(SETTINGS, $file) or die "File <$file> not found!"; - ; - my $i = 0; - while() { - chomp; - my @setting = split "\t", $_; - my $l = $table->Label(-text => $setting[0]); - $table->put($i, 0, $l); - $l = $table->Entry(-width => 25); - $l->insert('end', $setting[1]); - $table->put($i, 1, $l); - $l = $table->Label(-text => $setting[2]); - $table->put($i, 2, $l); - $i++; - } - close(SETTINGS); - return $i; -} - -sub SaveSettings { - my ($edit, $table, $file, $rownumber) = @_; - open(SETTINGS, ">$file") or die "File <$file> could not be opened for writing!"; - print SETTINGS "Variable Setting\tValue\tComment\n"; - for(my $i=0;$i<$rownumber;$i++) { - my $setting = $table->get($i, 0)->cget('-text'); - my $value = $table->get($i, 1)->get; - my $comment = $table->get($i, 2)->cget('-text'); - print SETTINGS "$setting\t$value\t$comment\n"; - } - close(SETTINGS); - $edit->destroy; -} +#! /usr/bin/perl5 -w + +use strict; +use Tk; +use Tk::TextUndo; +use Tk::Table; +use Tk::NoteBook; +use open ':std', ':encoding(UTF-8)'; + +BEGIN{ + if($^O eq 'MSWin32'){ + require Win32::Console; + #Win32::Console::Free(); + } +} + +my $fdialogbug = 0; + +if($] >= 5.008004) { + $fdialogbug = 1; +} + +my %lang_data_cache; +my $lang_code_file_path = 'Manager_language.txt'; +open(my $fh_lang_code, '<', $lang_code_file_path) or die "Cannot open language code file: $!"; +my $lang_code = <$fh_lang_code>; +chomp($lang_code); +close($fh_lang_code); +my $lang_file = "Languages\\$lang_code\\StrategyManager.txt"; +my $back_lang_file = "Languages\\English\\StrategyManager.txt"; +my %languages; + +sub load_language { + my ($lang_file) = @_; + return $lang_data_cache{$lang_file} if exists $lang_data_cache{$lang_file}; + open my $fh, '<:encoding(UTF-8)', $lang_file or die "Cannot open language file '$lang_file': $!"; + my %keylang; + while (<$fh>) { + chomp; + next if /^\s*(?:#.*)?$/; + my ($key, $value) = split '=', $_, 2; + unless (defined $key && defined $value) { + warn "Invalid line format in language file at line $.: $_"; + next; + } + # $key =~ s/^\s+|\s+$//g; + # $value =~ s/^\s+|\s+$//g; + $keylang{$key} = $value; + } + close $fh; + $lang_data_cache{$lang_file} = \%keylang; + return \%keylang; +} + +sub get_translation { + my ($key, @args) = @_; + my $lang_ref = load_language($lang_file); + if (exists $lang_ref->{$key} && $lang_ref->{$key} !~ /^\s*$/) { + return sprintf($lang_ref->{$key}, @args); + } + $lang_ref = load_language($back_lang_file); + if (exists $lang_ref->{$key} && $lang_ref->{$key} !~ /^\s*$/) { + return sprintf($lang_ref->{$key}, @args); + } + return "$key(" . join(", ", @args) . ")"; +} + +my $main = MainWindow->new(-title => get_translation('title_strategy_manager')); +my ($screen_width, $screen_height) = ($main->screenwidth, $main->screenheight); +$main->maxsize(400, 1200); +my $lframe = $main->Frame->pack(-side => 'left'); +my $race; +my $ver; +my $strat; +my $profile; +my $rframe = $main->Frame->pack(-side => 'right'); +my $notebook = $rframe->NoteBook()->pack(-side => 'left'); +$notebook->configure(-font => ['Helvetica', 10]); +my $stratframe = $notebook->add("strat", -label => get_translation('label_strategies')); +my $profileframe = $notebook->add("profile", -label => get_translation('label_profiles')); +my $stratlb = $stratframe->Listbox(-height => 0)->pack; +my $stratlb = $stratframe->Scrolled('Listbox', + -scrollbars => 'se', + -height => 0, +)->pack(-fill => 'both', -expand => 1); +tie $strat, "Tk::Listbox", $stratlb; +my $profilelb = $profileframe->Listbox(-height => 0)->pack; +my $profilelb = $profileframe->Scrolled('Listbox', + -scrollbars => 'se', + -height => 0, +)->pack(-fill => 'both', -expand => 1); +tie $profile, "Tk::Listbox", $profilelb; + +my $bframe = $rframe->Frame->pack(-side => 'right'); +$bframe->Label( + -text => get_translation('placeholder_operate'), + -width => 16, + -height => 1, +)->pack; +$bframe->Button( + -text => get_translation('button_new'), + -command => sub { + if ($notebook->raised eq 'strat') { + InsertStratSub("$ver\\$race\\New.ais", $ver, $race); + UpdateStratList($stratlb, $ver, $race) + } + else { + InsertProfileSub("$ver\\New.aip", $ver); + UpdateProfileList($profilelb, $ver) + } + }, + -width => 16)->pack; +$bframe->Button( + -text => get_translation('button_extract'), + -command => sub { + if ($notebook->raised eq 'strat') { + ExtractStrat($main, $ver, $race, $strat) + } + else { + ExtractProfile($main, $ver, $profile) + } + }, + -width => 16)->pack; +$bframe->Button( + -text => get_translation('button_insert'), + -command => sub { + if ($notebook->raised eq 'strat') { + InsertStrat($main, $ver, $race); + UpdateStratList($stratlb, $ver, $race) + } + else { + InsertProfile($main, $ver); + UpdateProfileList($profilelb, $ver) + } + }, + -width => 16)->pack; +$bframe->Button( + -text => get_translation('button_copy'), + -command => sub { + if ($notebook->raised eq 'strat') { + CopyStrat($ver, $race, $strat); + UpdateStratList($stratlb, $ver, $race) + } + else { + CopyProfile($ver, $profile); + UpdateProfileList($profilelb, $ver) + } + }, + -width => 16)->pack; +$bframe->Button( + -text => get_translation('button_remove'), + -command => sub { + if ($notebook->raised eq 'strat') { + RemoveStrat($main, $ver, $race, $strat); + UpdateStratList($stratlb, $ver, $race) + } + else { + RemoveProfile($main, $ver, $profile); + UpdateProfileList($profilelb, $ver) + } + }, + -width => 16)->pack; +$bframe->Button( + -text => get_translation('button_edit'), + -command => sub { + if ($notebook->raised eq 'strat') { + EditStrat($main, $ver, $race, $strat) + } + else { + EditProfile($main, $ver, $profile) + } + }, + -width => 16)->pack; +$bframe->Button( + -text => get_translation('button_lock'), + -command => sub { + if ($notebook->raised eq 'strat') { + SetRaceOption($ver, $race, 'debug_strategy', "STRAT_$strat->[0]") + } + else { + SetVerOption($ver, 'debug_profile', GetArrayIndex($profile, $profilelb->get(0, 'end'))) + } + }, + -width => 16)->pack; +$bframe->Button( + -text => get_translation('button_unlock'), + -command => sub { + if ($notebook->raised eq 'strat') { + SetRaceOption($ver, $race, 'debug_strategy', -1) + } + else { + SetVerOption($ver, 'debug_profile', -1) + } + }, + -width => 16)->pack; + +open(VERFILE, "Versions.txt") or die get_translation('err_file_not_found', ""); +my @vers = ; +close(VERFILE); +chomp foreach (@vers); +my $raceopt; +my $veropt; +my $langopt; +$lframe->Label( + -text => get_translation('placeholder_ver'), + -width => 24, + -height => 1, +)->pack; +$veropt = $lframe->Optionmenu( + -command => sub { $raceopt -> destroy if($raceopt); + $raceopt = $lframe->Optionmenu( + -command => sub { UpdateStratList($stratlb, $ver, $race) }, + -variable => \$race, + -width => 20)->pack(-after => $veropt); + $raceopt -> addOptions(GetRaces($ver)); + UpdateStratList($stratlb, $ver, $race); + UpdateProfileList($profilelb, $ver) }, + -variable => \$ver, + -width => 20)->pack; +$veropt->addOptions(@vers); +$lframe->Label( + -height => 1, # Placeholder +)->pack; +$lframe->Label( + -text => get_translation('placeholder_set'), + -width => 24, + -height => 1, +)->pack; +$lframe->Button( + -text => get_translation('button_edit_global'), + -command => sub { EditSettings($main, "$ver\\GlobalSettings.txt") }, + -width => 24)->pack; +$lframe->Label( + -height => 1, # Placeholder +)->pack; +$lframe->Label( + -text => get_translation('placeholder_raceset'), + -width => 24, + -height => 1, +)->pack; +$lframe->Button( + -text => get_translation('button_edit_racial_builds'), + -command => sub { EditRacialBuilds($main, $ver, $race) }, + -width => 24)->pack; +$lframe->Button( + -text => get_translation('button_edit_racial_settings'), + -command => sub { EditSettings($main, "$ver\\$race\\Settings.txt") }, + -width => 24)->pack; +$lframe->Label( + -height => 1, # Placeholder +)->pack; +$lframe->Label( + -text => get_translation('placeholder_compile'), + -width => 24, + -height => 1, +)->pack; +$lframe->Button( + -text => get_translation('button_compile'), + -command => sub { system "Make$ver.bat" }, + -width => 24)->pack; +$lframe->Button( + -text => get_translation('button_compile_opt'), + -command => sub { system "MakeOpt$ver.bat" }, + -width => 24)->pack; +$lframe->Button( + -text => get_translation('button_compile_vsai'), + -command => sub { system "MakeVAI$ver.bat" }, + -width => 24)->pack; +$lframe->Label( + -height => 1, # Placeholder +)->pack; +$lframe->Label( + -text => get_translation('placeholder_setlang'), + -width => 24, + -height => 1, +)->pack; +$langopt = $lframe->Optionmenu( + # -options => [map { [$_ => $_] } @sorted_languages], + -command => sub { + my ($choice) = @_; + system("SetManagerLanguage.bat", "$choice"); + exit(0); + }, + -variable => \$lang_code, + -width => 20 +)->pack; +$langopt -> addOptions(GetLanguages()); +# $lframe->Label( +# -height => 4, # Placeholder +# )->pack; +# $lframe->Button( +# -text => get_translation('button_quit'), # no need +# -command => [$main => 'destroy'], +# -width => 24 +# )->pack; +MainLoop; + +sub GetLanguages { + open(LANG, "Languages.txt") or die get_translation('err_file_not_found', ""); + my @languages = ; + close(LANG); + shift @languages; + chomp foreach (@languages); + foreach (@languages) { + /^([^\t]*)\t/; + $_ = $1; + }; + return @languages; +}; + +sub GetRaces { + my $ver = shift; + open(RACEFILE, "$ver\\Races.txt") or die get_translation('err_file_not_found', "<$ver\\Races.txt>"); + my @races = ; + close(RACEFILE); + chomp foreach (@races); + foreach (@races) { + /^([^\t]*)\t/; + $_ = $1; + }; + return @races; +} + +sub GetArrayIndex { + my ($x, @a) = @_; + my $i = 0; + return -1 unless (@$x[0]); + foreach (@a) { + return $i if (@$x[0] eq $_); + $i++; + } + return -1; +} + +sub SetRaceOption { + my ($ver, $race, $opt, $val) = @_; + open(SETFILE, "$ver\\$race\\Settings.txt") or die get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>"); + my @setfile = (); + my $optionexists = 0; + while() { + if (/^$opt\t[^\t]*\t(.*)/) { + push @setfile, "$opt\t$val\t$1\n"; + $optionexists = 1; + } + else { + push @setfile, $_; + } + } + push @setfile, "$opt\t$val\t\n" if ($optionexists == 0); + close(SETFILE); + open(SETFILE, ">$ver\\$race\\Settings.txt") or die get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>"); + print SETFILE @setfile; + close(SETFILE); +} + +sub SetVerOption { + my ($ver, $opt, $val) = @_; + open(SETFILE, "$ver\\GlobalSettings.txt") or die get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>"); + my @setfile = (); + my $optionexists = 0; + while() { + if (/^$opt\t[^\t]*\t(.*)/) { + push @setfile, "$opt\t$val\t$1\n"; + $optionexists = 1; + } + else { + push @setfile, $_; + } + } + push @setfile, "$opt\t$val\t\n" if ($optionexists == 0); + close(SETFILE); + open(SETFILE, ">$ver\\GlobalSettings.txt") or die get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>"); + print SETFILE @setfile; + close(SETFILE); +} + +sub GetStratList { + my $ver = shift; + my $race = shift; + return () unless ($ver and $race); + open(STRATFILE, "$ver\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$ver\\$race\\Strategy.txt>"); + my @stratlist = (); + ; + while () { + if (/^([^\t]*)\t/) { + push @stratlist, $1; + } + }; + close(STRATFILE); + return @stratlist; +}; + +sub UpdateStratList { + my $stratlb = shift; + my $ver = shift; + my $race = shift; + $stratlb->delete(0, $stratlb->index('end')-1); + $stratlb->insert('end', GetStratList($ver, $race)); +} + +sub GetProfileList { + my $ver = shift; + return () unless ($ver); + open(PROFILEFILE, "$ver\\Profiles.txt") or die get_translation('err_file_not_found', "<$ver\\Profiles.txt>"); + my @profilelist = (); + ; + while () { + if (/^([^\t]*)\t/) { + push @profilelist, $1; + } + }; + close(PROFILEFILE); + return @profilelist; +}; + +sub UpdateProfileList { + my ($profilelb, $ver) = @_; + $profilelb->delete(0, $profilelb->index('end')-1); + $profilelb->insert('end', GetProfileList($ver)); +} + +sub RemoveStrat { + my ($main, $version, $race, $strat) = @_; + return unless @$strat[0]; + my $response = $main->messageBox(-message => get_translation('message_remove_strategy'), -title => get_translation('title_really'), -type => 'YesNo', -default => 'no'); + return if ($response eq 'no' or $response eq 'No'); + my $stratname = @$strat[0]; + open(STRATFILE, "$version\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>"); + my @stratfile = (); + while () { + unless (/^$stratname\t/) { + push(@stratfile, $_); + } + } + close(STRATFILE); + open(STRATFILE, ">$version\\$race\\Strategy.txt") or die get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>"); + print STRATFILE @stratfile; + close(STRATFILE); + @stratfile = (); + open(AIFILE, "$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>"); + my @aifile = (); + while () { + if (/\bfunction\s*init_strategy_$stratname\b/) { + while (( or die get_translation('err_strategy_not_complete')) !~ /endfunction/) {} + while (( or die get_translation('err_strategy_not_complete')) !~ /endfunction/) {} + } + else { + push(@aifile, $_); + } + } + close(AIFILE); + open(AIFILE, ">$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>"); + print AIFILE @aifile; + close(AIFILE); +} + +sub RemoveProfile { + my ($main, $version, $profile) = @_; + return unless @$profile[0]; + my $response = $main->messageBox(-message => get_translation('message_remove_profile'), -title => get_translation('title_really'), -type => 'YesNo', -default => 'no'); + return if ($response eq 'no' or $response eq 'No'); + my $profilename = @$profile[0]; + open(PROFILEFILE, "$version\\Profiles.txt") or die get_translation('err_file_not_found', "<$version\\Profiles.txt>"); + my @profilefile = (); + while () { + unless (/^$profilename\t/) { + push(@profilefile, $_); + } + } + close(PROFILEFILE); + open(PROFILEFILE, ">$version\\Profiles.txt") or die get_translation('err_file_not_writing', "<$version\\Profiles.txt>"); + print PROFILEFILE @profilefile; + close(PROFILEFILE); +} + +sub CopyStrat { + my ($version, $race, $strat) = @_; + return unless @$strat[0]; + my $stratname = @$strat[0]; + ExtractStratSub('tmp', $version, $race, $stratname); + InsertStratSub('tmp', $version, $race); + system "del tmp"; +} + +sub CopyProfile { + my ($version, $profile) = @_; + return unless @$profile[0]; + my $profilename = @$profile[0]; + ExtractProfileSub('tmp', $version, $profilename); + InsertProfileSub('tmp', $version); + system "del tmp"; +} + +sub ExtractStratSub { + my ($filename, $version, $race, $stratname) = @_; + open(AIFILE, "$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>"); + open(STRATFILE, "$version\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>"); + open(TARGETFILE, ">$filename") or die get_translation('err_file_not_found', "<$filename>"); + print TARGETFILE "#AMAI 2.0 Strategy\n"; + my $line = ; + while (($line = ( or die get_translation('err_strategy_not_found_s'))) !~ /^$stratname\t/) {} + print TARGETFILE $line; + while (($line = ( or die get_translation('err_strategy_not_found_b'))) !~ /\bfunction\s*init_strategy_$stratname\b/) {} + print TARGETFILE $line; + while (($line = ( or die get_translation('err_strategy_not_complete'))) !~ /endfunction/) {print TARGETFILE $line;} + print TARGETFILE $line; + while (($line = ( or die get_translation('err_strategy_not_complete'))) !~ /endfunction/) {print TARGETFILE $line;} + print TARGETFILE $line; + close(TARGETFILE); + close(AIFILE); + close(STRATFILE); +} + +sub ExtractStrat { + my ($main, $version, $race, $strat) = @_; + return unless @$strat[0]; + my $stratname = @$strat[0]; + my $types = [['AMAI Strategies', '.ais']]; + $types = [['AMAI Strategies', '.ais'],[]] if ($fdialogbug); + my $filename = $main->getSaveFile( + -defaultextension => '.ais', + -filetypes => $types ); + return unless ($filename and ($filename ne "")); + ExtractStratSub($filename, $version, $race, $stratname); +} + +sub ExtractProfileSub { + my ($filename, $version, $profilename) = @_; + open(PROFILEFILE, "$version\\Profiles.txt") or die get_translation('err_file_not_found', "<$version\\Profiles.txt>"); + open(TARGETFILE, ">$filename") or die get_translation('err_file_not_found', "<$filename>"); + print TARGETFILE "#AMAI 2.0 Profile\n"; + my $line = ; + while (($line = ( or die get_translation('err_profile_not_found_p'))) !~ /^$profilename\t/) {} + print TARGETFILE $line; + close(TARGETFILE); + close(PROFILEFILE); +} + +sub ExtractProfile { + my ($main, $version, $profile) = @_; + return unless @$profile[0]; + my $profilename = @$profile[0]; + my $types = [['AMAI Profiles', '.aip']]; + $types = [['AMAI Profiles', '.aip'],[]] if ($fdialogbug); + my $filename = $main->getSaveFile( + -defaultextension => '.aip', + -filetypes => $types ); + return unless ($filename and ($filename ne "")); + ExtractProfileSub($filename, $version, $profilename); +} + +sub InsertStratSub { + my ($filename, $version, $race) = @_; + my $stratlist = join ',', GetStratList($version, $race); + open(SOURCE, $filename) or die get_translation('err_file_not_found', "<$filename>"); + open(AIFILE, ">>$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>"); + open(STRATFILE, ">>$version\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>"); + my $line = ; + if ($line !~ /#AMAI 2.0 Strategy/) {die get_translation('err_not_file_s');} + $line = ; + $line =~ /^([^\t]*)\t/; + my $oldstratname = $1; + my $stratname = $oldstratname; + my $x = 0; + while ($stratlist =~ /\b$stratname\b/) { + $x++; + $stratname = "$oldstratname$x"; + } + + $line =~ s/^$oldstratname/$stratname/; + print STRATFILE $line; + print AIFILE "\n"; + while () { + s/\b(function \w*_)$oldstratname\b/$1$stratname/; + print AIFILE; + } + close(AIFILE); + close(STRATFILE); + close(SOURCE); +} + +sub InsertStrat { + my ($main, $version, $race) = @_; + my $types = [['AMAI Strategies', '.ais']]; + $types = [['AMAI Strategies', '.ais'],[]] if ($fdialogbug); + my $filename = $main->getOpenFile( + -defaultextension => '.ais', + -filetypes => $types ); + return unless ($filename and ($filename ne "")); + InsertStratSub($filename, $version, $race); +} + +sub InsertProfileSub { + my ($filename, $version) = @_; + my $profilelist = join ',', GetProfileList($version); + open(SOURCE, $filename) or die get_translation('err_file_not_found', "<$filename>"); + open(PROFILEFILE, ">>$version\\Profiles.txt") or die get_translation('err_file_not_found', "<$version\\Profiles.txt>"); + my $line = ; + if ($line !~ /#AMAI 2.0 Profile/) {die get_translation('err_not_file_p');} + $line = ; + $line =~ /^([^\t]*)\t/; + my $oldprofilename = $1; + my $profilename = $oldprofilename; + my $x = 0; + while ($profilelist =~ /\b$profilename\b/) { + $x++; + $profilename = "$oldprofilename$x"; + } + + $line =~ s/^$oldprofilename/$profilename/; + print PROFILEFILE $line; + close(PROFILEFILE); + close(SOURCE); +} + +sub InsertProfile { + my ($main, $version) = @_; + my $types = [['AMAI Profiles', '.aip']]; + $types = [['AMAI Profiles', '.aip'],[]] if ($fdialogbug); + my $filename = $main->getOpenFile( + -defaultextension => '.aip', + -filetypes => $types ); + return unless ($filename and ($filename ne "")); + InsertProfileSub($filename, $version); +} + +sub EditStrat { + my ($main, $version, $race, $strat) = @_; + return unless @$strat[0]; + my $edit = $main->Toplevel(-title => get_translation('title_strategy_editor')); + my $lframe = $edit->Frame->pack(-side => 'left'); + my $rframe = $edit->Frame->pack(-side => 'right'); + my $bframe = $rframe->Frame->pack(-side => 'right'); + my $strattable = $rframe->Table(-rows => 37)->pack(-side => 'left'); + open(TIERFILE, "$ver\\$race\\Tiers.txt") or die get_translation('err_file_not_found', "<$ver\\$race\\Tiers.txt>"); + my @tiers = ; + my $tiernum = @tiers; + close(TIERFILE); + my $textheight = 44 / ($tiernum + 1); + my @buildtexttier = (); + $lframe->Label(-text => get_translation('label_Init_code'))->pack; + my $inittext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; + for(my $i=1;$i<=$tiernum;$i++) { + $lframe->Label(-text => get_translation('label_tier_code', "$i"))->pack; + $buildtexttier[$i] = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; + } + my $optarrayref = FillTable($strattable, $version, $race, @$strat[0]); + FillTexts($inittext, \@buildtexttier, $version, $race, @$strat[0]); + $bframe->Button( + -text => get_translation('button_ok'), + -command => sub {SaveStrat($edit, $inittext, \@buildtexttier, $strattable, $version, $race, @$strat[0], $optarrayref)}, + -width => 14)->pack; + $bframe->Button( + -text => get_translation('button_cancel'), + -command => [$edit => 'destroy'], + -width => 14)->pack; + $edit->focusForce; +} + +sub EditProfile { + my ($main, $version, $profile) = @_; + return unless @$profile[0]; + my $edit = $main->Toplevel(-title => get_translation('title_profile_editor')); + my $bframe = $edit->Frame->pack(-side => 'right'); + my $profiletable = $edit->Table(-rows => 37)->pack(-side => 'left'); + my $optarrayref = FillProfileTable($profiletable, $version, @$profile[0]); + $bframe->Button( + -text => get_translation('button_ok'), + -command => sub {SaveProfile($edit, $profiletable, $version, @$profile[0], $optarrayref)}, + -width => 14)->pack; + $bframe->Button( + -text => get_translation('button_cancel'), + -command => [$edit => 'destroy'], + -width => 14)->pack; + $edit->focusForce; +} + +sub GetVarList { + my ($ver, $var, $race) = @_; + open(VARFILE, "VarDefs.ini") or die get_translation('err_file_not_found', ""); + ; + while() { + chomp; + if (/$var\t(.*)/) { + my $fn = $1; + $fn =~ s/\$RACE\$/$race/g; + close(VARFILE); + open(VARTABLE, "$ver\\$fn") or die get_translation('err_file_not_found', "<$ver\\$fn>"); + my @vt = (); + while () { + /([^\t\n]*)(\t|\n|$)/; + push @vt, $1; + } + close(VARTABLE); + return @vt; + } + } + return $var; +} + +sub ExtendTable { + my ($ver, $race, @table) = @_; + my @outtable = (); + foreach (@table) { + my @l = (); + push @l, $_; + my $b = 1; + while($b) { + $b = 0; + my @lout = (); + foreach (@l) { + if(/\$([^\$]*)\$/) { + my $var = $1; + my $it = $_; + $b = 1; + foreach (GetVarList($ver, $var, $race)) { + my $itrep = $it; + $itrep =~ s/\$$var\$/$_/g; + push @lout, $itrep; + } + } + else { + push @lout, $_; + } + } + @l = @lout; + } + push @outtable, @l; + } + return @outtable; +} + +sub ExtendOptList { + my ($ver, $dummy, @ilist) = @_; + my @olist = ($dummy); + foreach(@ilist) { + if (/\%([^\%]+)\%/) { + push @olist, GetVarList($ver, $1, ''); + } + else { + push @olist, $_; + } + } + return @olist; +} + +sub GetOptList { + my $ver = shift; + open(OPTFILE, "Optionlist.ini") or die get_translation('err_file_not_found', ""); + my %optlist = (); + my @optfile = ; + close(OPTFILE); + @optfile = ExtendTable($ver, '', @optfile); + foreach (@optfile) { + chomp; + /([^:]*):([^:]*)/; + my $optname = $1; + my @optarray = split(',', $2); + @optarray = ExtendOptList($ver, @optarray) if ($optarray[0] eq 'list'); + $optlist{$optname} = \@optarray; + } + return \%optlist; +} + +sub OptionmenuAddOptions { + my ($optmenu, $curval, @optlist) = @_; + foreach (@optlist) { + $optmenu->addOptions($_) unless $_ eq $curval; + } + $optmenu->addOptions($curval); +} + +sub GetUnitLists { + my ($version, $race) = @_; + my @unitlist = (0); + my @buildinglist = (0); + my @upgradelist = (0); + my @herolist = (0); + open(UNITFILE, "$version\\StandardUnits.txt") or die get_translation('err_file_not_found', "<$version\\StandardUnits.txt>"); + while() { + my @line = split("\t", $_); + push @buildinglist, $line[0] if ($line[2] =~ /$race/ and $line[4] eq "BUILDING"); + push @unitlist, $line[0] if (($line[2] =~ /$race/) and ($line[3] !~ /peon|mutated/) and $line[4] eq "UNIT"); + push @upgradelist, $line[0] if (($line[2] =~ /$race/) and ($line[3] =~ /upgrade/)); + push @herolist, $line[0] if (($line[2] =~ /$race|NEUTRAL/) and ($line[3] !~ /mutated/) and ($line[3] =~ /hero/)); + } + close(UNITFILE); + return (\@unitlist, \@buildinglist, \@upgradelist, \@herolist); +} + +sub GetProfileUnitLists { + my ($version, @races) = @_; + my %unitlists; + my %herolists; + foreach (@races) { + my @unitlist = (0); + my @herolist = (0); + $unitlists{$_} = \@unitlist; + $herolists{$_} = \@herolist; + } + open(UNITFILE, "$version\\StandardUnits.txt") or die get_translation('err_file_not_found', "<$version\\StandardUnits.txt>"); + while() { + my @line = split("\t", $_); + foreach (@races) { + push @{$unitlists{$_}}, $line[0] if (($line[3] !~ /dummy|mutated|peon/) and ($line[2] =~ /$_/) and $line[4] eq "UNIT"); + push @{$herolists{$_}}, $line[0] if (($line[3] =~ /hero/) and ($line[3] !~ /mutated/) and ($line[2] =~ /$_/)); + } + } + close(UNITFILE); + return (\%unitlists, \%herolists); +} + +sub FillTable { + my ($strattable, $version, $race, $strat) = @_; + my $optlistref = GetOptList($version); + my %optlist = %$optlistref; + my ($unitlistref, $buildinglistref, $upgradelistref, $herolistref) = GetUnitLists($version, $race); + my @unitlist = @{$unitlistref}; + my @buildinglist = @{$buildinglistref}; + my @upgradelist = @{$upgradelistref}; + my @herolist = @{$herolistref}; + open(STRATFILE, "$version\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>"); + my $line = ; + chomp($line); + my @opt = split("\t", $line); + my $l; + my $i = 0; + foreach my $v (@opt) { + $l = $strattable->Label(-text => $v); + $strattable->put($i, 0, $l); + $i++; + } + while (($line = ( or die get_translation('err_strategy_not_found_s'))) !~ /^$strat\t/) {} + chomp($line); + my @optval = split("\t", $line); + $i = 0; + my @optarray = (); + foreach my $v (@optval) { + if ($optlist{$opt[$i]}) { + my @optvalarray = @{$optlist{$opt[$i]}}; + $l = $strattable->Optionmenu( + -variable => \($optarray[$i]), + -width => 25)->pack; + if ($optvalarray[0] eq 'list') { + OptionmenuAddOptions($l, $v, @optvalarray[1..$#optvalarray]); + } + elsif ($optvalarray[0] eq 'unit') { + OptionmenuAddOptions($l, $v, @unitlist); + } + elsif ($optvalarray[0] eq 'building') { + OptionmenuAddOptions($l, $v, @buildinglist); + } + elsif ($optvalarray[0] eq 'hero') { + OptionmenuAddOptions($l, $v, @herolist); + } + else { + OptionmenuAddOptions($l, $v, @upgradelist); + } + } + else { + $l = $strattable->Entry(-width => 25); + $l->insert('end', $v); + } + $strattable->put($i, 1, $l); + $i++; + } + close(STRATFILE); + return \@optarray; +} + +sub FillProfileTable { + my ($profiletable, $version, $profile) = @_; + my $optlistref = GetOptList($version); + my %optlist = %$optlistref; + my ($unitlistref, $herolistref) = GetProfileUnitLists($version, GetRaces($version), 'NEUTRAL'); + my %unitlists = %{$unitlistref}; + my %herolists = %{$herolistref}; + open(PROFILEFILE, "$version\\Profiles.txt") or die get_translation('err_file_not_found', "<$version\\Profiles.txt>"); + my $line = ; + chomp($line); + my @opt = split("\t", $line); + my $l; + my $i = 0; + foreach my $v (@opt) { + $l = $profiletable->Label(-text => $v); + $profiletable->put($i, 0, $l); + $i++; + } + while (($line = ( or die get_translation('err_profile_not_found_p'))) !~ /^$profile\t/) {} + chomp($line); + my @optval = split("\t", $line); + $i = 0; + my @optarray = (); + foreach my $v (@optval) { + if ($optlist{$opt[$i]}) { + my @optvalarray = @{$optlist{$opt[$i]}}; + $l = $profiletable->Optionmenu( + -variable => \($optarray[$i]), + -width => 35)->pack; + if ($optvalarray[0] eq 'list') { + OptionmenuAddOptions($l, $v, @optvalarray[1..$#optvalarray]); + } + elsif ($optvalarray[0] eq 'unit') { + OptionmenuAddOptions($l, $v, @{$unitlists{$optvalarray[1]}}); + } + else { + OptionmenuAddOptions($l, $v, @{$herolists{$optvalarray[1]}}); + } + } + else { + $l = $profiletable->Entry(-width => 40); + $l->insert('end', $v); + } + $profiletable->put($i, 1, $l); + $i++; + } + close(PROFILEFILE); + return \@optarray; +} + +sub AssembleTable { + my ($strattable, $optarrayref) = @_; + my @jl = (); + for(my $i=0;$i<$strattable->totalRows;$i++) { + if (defined @{$optarrayref}[$i]) { + push @jl, @{$optarrayref}[$i]; + } + else { + push @jl, $strattable->get($i,1)->get; + } + } + return join "\t", @jl; +} + +sub FillTexts { + my ($inittext, $buildtexttierref, $version, $race, $stratname, @optarray) = @_; + my @buildtexttier = @{$buildtexttierref}; + open(AIFILE, "$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>"); + my $line; + while (( or die get_translation('err_strategy_not_found_ai')) !~ /\bfunction\s*init_strategy_$stratname\b/) {} + while (($line = ( or die get_translation('err_strategy_not_found_ai'))) !~ /endfunction/) {$inittext->insert('end', $line);} + while (( or die get_translation('err_strategy_not_found_ai')) !~ /\bfunction\s*build_sequence_$stratname\b/) {} + while (( or die get_translation('err_strategy_not_found_ai')) !~ /if.*tier.*==.*$#buildtexttier/) {} + for(my $i=$#buildtexttier;$i>2;$i--) { + my $j = $i-1; + while (($line = ( or die get_translation('err_strategy_not_found_ai'))) !~ /elseif.*tier.*==.*$j/) {$buildtexttier[$i]->insert('end', $line);} + } + my $iflevel = 0; + while ((($line = ( or die get_translation('err_strategy_not_found_ai'))) !~ /\belse\b/) or $iflevel != 0) { + $buildtexttier[2]->insert('end', $line); + $iflevel++ if ($line =~ /\bif/); + $iflevel-- if ($line =~ /endif/); + } + $iflevel = 0; + while ((($line = ( or die get_translation('err_strategy_not_found_ai'))) !~ /endif/) or $iflevel != 0) { + $buildtexttier[1]->insert('end', $line); + $iflevel++ if ($line =~ /\bif/); + $iflevel-- if ($line =~ /endif/); + } + close(AIFILE); +} + +sub SaveStrat { + my ($edit, $inittext, $buildtexttierref, $strattable, $version, $race, $stratname, $optarrayref) = @_; + my @buildtexttier = @{$buildtexttierref}; + my $newstratname = $strattable->get(0,1)->get; + open(STRATFILE, "$version\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>"); + my @stratfile = (); + while () { + if (/^$stratname\t/) { + push(@stratfile, AssembleTable($strattable, $optarrayref)); + push(@stratfile, "\n"); + } + else { + push(@stratfile, $_); + } + } + close(STRATFILE); + open(STRATFILE, ">$version\\$race\\Strategy.txt") or die get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>"); + print STRATFILE @stratfile; + close(STRATFILE); + @stratfile = (); + open(AIFILE, "$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>"); + my @aifile = (); + while () { + if (/\bfunction\s*init_strategy_$stratname\b/) { + while (( or die get_translation('err_strategy_not_complete')) !~ /endfunction/) {} + while (( or die get_translation('err_strategy_not_complete')) !~ /endfunction/) {} + push(@aifile, "function init_strategy_$newstratname takes nothing returns nothing\n"); + push(@aifile, $inittext->get('1.0', 'end')); + push(@aifile, "endfunction\n"); + push(@aifile, "function build_sequence_$newstratname takes nothing returns nothing\n"); + push(@aifile, "if tier == $#buildtexttier then\n"); + for(my $i=$#buildtexttier;$i>2;$i--) { + my $j = $i-1; + push(@aifile, $buildtexttier[$i]->get('1.0', 'end')); + push(@aifile, "elseif tier == $j then\n"); + } + push(@aifile, $buildtexttier[2]->get('1.0', 'end')); + push(@aifile, "else\n"); + push(@aifile, $buildtexttier[1]->get('1.0', 'end')); + push(@aifile, "endif\n"); + push(@aifile, "endfunction\n"); + } + else { + push(@aifile, $_); + } + } + close(AIFILE); + open(AIFILE, ">$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>"); + print AIFILE @aifile; + close(AIFILE); + $edit->destroy; +} + +sub SaveProfile { + my ($edit, $profiletable, $version, $profilename, $optarrayref) = @_; + my $newprofilename = $profiletable->get(0,1)->get; + open(PROFILEFILE, "$version\\Profiles.txt") or die get_translation('err_file_not_found', "<$version\\Profiles.txt>"); + my @profilefile = (); + while () { + if (/^$profilename\t/) { + push(@profilefile, AssembleTable($profiletable, $optarrayref)); + push(@profilefile, "\n"); + } + else { + push(@profilefile, $_); + } + } + close(PROFILEFILE); + open(PROFILEFILE, ">$version\\Profiles.txt") or die get_translation('err_file_not_writing', "<$version\\Profiles.txt>"); + print PROFILEFILE @profilefile; + close(PROFILEFILE); + $edit->destroy; +} + +sub EditRacialBuilds { + my ($main, $ver, $race) = @_; + my $edit = $main->Toplevel(-title => get_translation('title_racial_builds_editor')); + my $lframe = $edit->Frame->pack(-side => 'left'); + my $rframe = $edit->Frame->pack(-side => 'right'); + my $textheight = 22; + $lframe->Label(-text => get_translation('label_racial_Init_code'))->pack; + my $inittext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; + $lframe->Label(-text => get_translation('label_racial_build'))->pack; + my $buildtext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; + LoadRacialBuild($inittext, $buildtext, $ver, $race); + $rframe->Button( + -text => get_translation('button_ok'), + -command => sub {SaveRacialBuild($edit, $inittext, $buildtext, $ver, $race)}, + -width => 14)->pack; + $rframe->Button( + -text => get_translation('button_cancel'), + -command => [$edit => 'destroy'], + -width => 14)->pack; + $edit->focusForce; +} + +sub LoadRacialBuild { + my ($inittext, $buildtext, $ver, $race) = @_; + open(AIFILE, "$ver\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>"); + my $line; + while (( or die get_translation('err_strategy_init_not_set')) !~ /function global_init_strategy/) {} + while (($line = ( or die get_translation('err_strategy_init_not_complete'))) !~ /endfunction/) {$inittext->insert('end', $line);} + while (( or die get_translation('err_strategy_build_set')) !~ /function global_build_sequence/) {} + while (($line = ( or die get_translation('err_strategy_build_complete'))) !~ /endfunction/) {$buildtext->insert('end', $line);} + close(AIFILE); +} + +sub SaveRacialBuild { + my ($edit, $inittext, $buildtext, $ver, $race) = @_; + open(AIFILE, "$ver\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>"); + my @aifile = (); + while () { + if (/\bfunction\s*global_init_strategy\b/) { + while (( or die get_translation('err_global_build_set')) !~ /endfunction/) {} + while (( or die get_translation('err_global_build_set')) !~ /endfunction/) {} + push(@aifile, "function global_init_strategy takes nothing returns nothing\n"); + push(@aifile, $inittext->get('1.0', 'end')); + push(@aifile, "endfunction\n"); + push(@aifile, "function global_build_sequence takes nothing returns nothing\n"); + push(@aifile, $buildtext->get('1.0', 'end')); + push(@aifile, "endfunction\n"); + } + else { + push(@aifile, $_); + } + } + close(AIFILE); + open(AIFILE, ">$ver\\$race\\BuildSequence.ai") or die get_translation('err_file_not_writing', "<$ver\\$race\\BuildSequence.ai>"); + print AIFILE @aifile; + close(AIFILE); + $edit->destroy; +} + +sub EditSettings { + my ($main, $file) = @_; + my $edit = $main->Toplevel(-title => get_translation('title_settings_editor')); + my $lframe = $edit->Frame->pack(-side => 'left'); + my $rframe = $edit->Frame->pack(-side => 'right'); + my $table = $lframe->Table(-rows => 37)->pack(-side => 'left'); + my $rownumber = LoadSettings($table, $file); + $rframe->Button( + -text => get_translation('button_ok'), + -command => sub {SaveSettings($edit, $table, $file, $rownumber)}, + -width => 14)->pack; + $rframe->Button( + -text => get_translation('button_cancel'), + -command => [$edit => 'destroy'], + -width => 14)->pack; + $edit->focusForce; +} + +sub LoadSettings { + my ($table, $file) = @_; + open(SETTINGS, $file) or die get_translation('err_file_not_found', "<$file>"); + ; + my $i = 0; + while() { + chomp; + my @setting = split "\t", $_; + my $l = $table->Label(-text => $setting[0]); + $table->put($i, 0, $l); + $l = $table->Entry(-width => 25); + $l->insert('end', $setting[1]); + $table->put($i, 1, $l); + $l = $table->Label(-text => $setting[2]); + $table->put($i, 2, $l); + $i++; + } + close(SETTINGS); + return $i; +} + +sub SaveSettings { + my ($edit, $table, $file, $rownumber) = @_; + open(SETTINGS, ">$file") or die get_translation('err_file_not_writing', "<$file>"); + print SETTINGS "Variable Setting\tValue\tComment\n"; + for(my $i=0;$i<$rownumber;$i++) { + my $setting = $table->get($i, 0)->cget('-text'); + my $value = $table->get($i, 1)->get; + my $comment = $table->get($i, 2)->cget('-text'); + print SETTINGS "$setting\t$value\t$comment\n"; + } + close(SETTINGS); + $edit->destroy; +} \ No newline at end of file diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt new file mode 100644 index 000000000..7a2a23e4d --- /dev/null +++ b/Languages/Chinese/StrategyManager.txt @@ -0,0 +1,53 @@ +button_new=新建 +button_extract=导出 +button_insert=导入 +button_copy=复制 +button_remove=删除 +button_edit=编辑 +button_lock=锁定 +button_unlock=解锁 +button_quit=退出 +button_edit_racial_builds=编辑种族构筑 +button_edit_global=编辑全局参数 +button_edit_racial_settings=编辑种族参数 +button_compile=编译脚本 +button_compile_opt=编译并优化脚本 +button_compile_vsai=编译 vs 暴雪AI 脚本 +button_ok=提交 +button_cancel=取消 +button_yes=确定 +placeholder_operate=- 操作 - +placeholder_ver=- 版本与种族 - +placeholder_set=- 全局设置 - +placeholder_raceset=- 种族设置 - +placeholder_compile=- 编译 - +placeholder_setlang=- 管理器语言 - +label_strategies=策略 +label_profiles=档案 +label_Init_code=策略初始化设置 +label_tier_code=%s 本基地训练/研究逻辑 +label_racial_Init_code=全局限制 +label_racial_build=全局训练/研究逻辑 +err_file_not_found=<%s> 文件丢失! +err_file_not_writing=<%s> 文件不能写入! +err_strategy_not_found_a=AI文件中找不到策略 +err_strategy_not_found=策略表中找不到策略 +err_strategy_not_found_b=构筑表中找不到策略 +err_strategy_not_complete=策略未完成 +err_strategy_not_complete_ai=该AI文件的策略尚未完成 +err_strategy_init_not_set=种族构筑未初始化 +err_strategy_init_not_complete=种族构筑未完成 +err_strategy_build_set=种族构筑未设置 +err_strategy_build_complete=种族构筑未完成 +err_global_build_set=种族构筑未完成 +err_profile_not_found_p=档案表中找不到该档案 +err_not_file_s=策略文件丢失 +err_not_file_p=档案文件丢失 +message_remove_strategy=确定删除策略? +message_remove_profile=确定删除档案? +title_really=提示 +title_strategy_manager=AMAI 策略管理器 +title_profile_editor=AMAI 档案编辑器 +title_strategy_editor=AMAI 策略编辑器 +title_racial_builds_editor=AMAI 种族构筑编辑器 +title_settings_editor=AMAI 参数编辑器 \ No newline at end of file diff --git a/Languages/Deutsch/StrategyManager.txt b/Languages/Deutsch/StrategyManager.txt new file mode 100644 index 000000000..6a857c6fb --- /dev/null +++ b/Languages/Deutsch/StrategyManager.txt @@ -0,0 +1,53 @@ +button_new= +button_extract= +button_insert= +button_copy= +button_remove= +button_edit= +button_lock= +button_unlock= +button_quit= +button_edit_racial_builds= +button_edit_global= +button_edit_racial_settings= +button_compile= +button_compile_opt= +button_compile_vsai= +button_ok= +button_cancel= +button_yes= +placeholder_operate= +placeholder_ver= +placeholder_set= +placeholder_raceset= +placeholder_compile= +placeholder_setlang= +label_strategies= +label_profiles= +label_Init_code= +label_tier_code= +label_racial_Init_code= +label_racial_build= +err_file_not_found= +err_file_not_writing= +err_strategy_not_found_a= +err_strategy_not_found= +err_strategy_not_found_b= +err_strategy_not_complete= +err_strategy_not_complete_ai= +err_strategy_init_not_set= +err_strategy_init_not_complete= +err_strategy_build_set= +err_strategy_build_complete= +err_global_build_set= +err_profile_not_found_p= +err_not_file_s= +err_not_file_p= +message_remove_strategy= +message_remove_profile= +title_really= +title_strategy_manager= +title_profile_editor= +title_strategy_editor= +title_racial_builds_editor= +title_settings_editor= \ No newline at end of file diff --git a/Languages/English/StrategyManager.txt b/Languages/English/StrategyManager.txt new file mode 100644 index 000000000..edba94288 --- /dev/null +++ b/Languages/English/StrategyManager.txt @@ -0,0 +1,53 @@ +button_new=New +button_extract=Extract +button_insert=Insert +button_copy=Copy +button_remove=Remove +button_edit=Edit +button_lock=Lock +button_unlock=Unlock +button_quit=Quit +button_edit_racial_builds=Edit Racial Builds +button_edit_global=Edit Global Settings +button_edit_racial_settings=Edit Racial Settings +button_compile=Compile +button_compile_opt=Compile, Optimize +button_compile_vsai=Compile AMAIvsAI +button_ok=OK +button_cancel=Cancel +button_yes=Yes +placeholder_operate=- Operate - +placeholder_ver=- Versions and Race - +placeholder_set=- Global Settings - +placeholder_raceset= - Race Settings - +placeholder_compile=- Compile - +placeholder_setlang=- Manager Language - +label_strategies=Strategies +label_profiles=Profiles +label_Init_code=Initalisation Code +label_racial_Init_code=Racial Initalisation Code +label_racial_build=Racial Build Code +label_tier_code=Code for Tier %s +err_file_not_found=File <%s> not found! +err_file_not_writing=File <%s> could not be opened for writing! +err_strategy_not_found_a=Strategy not found in AI File +err_strategy_not_found_s=Strategy not found in Strategy Table +err_strategy_not_found_b=Strategy not found in Build Sequence +err_strategy_not_complete=Strategy not complete in Build Sequence +err_strategy_not_complete_ai=Strategy not complete in AI File +err_strategy_init_not_set=global_init_strategy not in Build Sequence +err_strategy_init_not_complete=global_init_strategy not complete in Build Sequence +err_strategy_build_set=global_build_sequence not in Build Sequence +err_global_build_set=Global Builds not complete in Build Sequence +err_strategy_build_complete=global_build_sequence not complete in Build Sequence +err_profile_not_found_p=Profile not found in Profile Table +err_not_file_s=No AMAI 2.0 Strategy File +err_not_file_p=No AMAI 2.0 Profile File +message_remove_strategy=Are you sure you want to remove that strategy? +message_remove_profile=Are you sure you want to remove that profile? +title_really=Really? +title_strategy_manager=AMAI Strategy Manager +title_profile_editor=AMAI Profile Editor +title_strategy_editor=AMAI Strategy Editor +title_racial_builds_editor=AMAI Racial Builds Editor +title_settings_editor=AMAI Settings Editor \ No newline at end of file diff --git a/Languages/French/StrategyManager.txt b/Languages/French/StrategyManager.txt new file mode 100644 index 000000000..6a857c6fb --- /dev/null +++ b/Languages/French/StrategyManager.txt @@ -0,0 +1,53 @@ +button_new= +button_extract= +button_insert= +button_copy= +button_remove= +button_edit= +button_lock= +button_unlock= +button_quit= +button_edit_racial_builds= +button_edit_global= +button_edit_racial_settings= +button_compile= +button_compile_opt= +button_compile_vsai= +button_ok= +button_cancel= +button_yes= +placeholder_operate= +placeholder_ver= +placeholder_set= +placeholder_raceset= +placeholder_compile= +placeholder_setlang= +label_strategies= +label_profiles= +label_Init_code= +label_tier_code= +label_racial_Init_code= +label_racial_build= +err_file_not_found= +err_file_not_writing= +err_strategy_not_found_a= +err_strategy_not_found= +err_strategy_not_found_b= +err_strategy_not_complete= +err_strategy_not_complete_ai= +err_strategy_init_not_set= +err_strategy_init_not_complete= +err_strategy_build_set= +err_strategy_build_complete= +err_global_build_set= +err_profile_not_found_p= +err_not_file_s= +err_not_file_p= +message_remove_strategy= +message_remove_profile= +title_really= +title_strategy_manager= +title_profile_editor= +title_strategy_editor= +title_racial_builds_editor= +title_settings_editor= \ No newline at end of file diff --git a/Languages/Norwegian/StrategyManager.txt b/Languages/Norwegian/StrategyManager.txt new file mode 100644 index 000000000..6a857c6fb --- /dev/null +++ b/Languages/Norwegian/StrategyManager.txt @@ -0,0 +1,53 @@ +button_new= +button_extract= +button_insert= +button_copy= +button_remove= +button_edit= +button_lock= +button_unlock= +button_quit= +button_edit_racial_builds= +button_edit_global= +button_edit_racial_settings= +button_compile= +button_compile_opt= +button_compile_vsai= +button_ok= +button_cancel= +button_yes= +placeholder_operate= +placeholder_ver= +placeholder_set= +placeholder_raceset= +placeholder_compile= +placeholder_setlang= +label_strategies= +label_profiles= +label_Init_code= +label_tier_code= +label_racial_Init_code= +label_racial_build= +err_file_not_found= +err_file_not_writing= +err_strategy_not_found_a= +err_strategy_not_found= +err_strategy_not_found_b= +err_strategy_not_complete= +err_strategy_not_complete_ai= +err_strategy_init_not_set= +err_strategy_init_not_complete= +err_strategy_build_set= +err_strategy_build_complete= +err_global_build_set= +err_profile_not_found_p= +err_not_file_s= +err_not_file_p= +message_remove_strategy= +message_remove_profile= +title_really= +title_strategy_manager= +title_profile_editor= +title_strategy_editor= +title_racial_builds_editor= +title_settings_editor= \ No newline at end of file diff --git a/Languages/Portuguese/StrategyManager.txt b/Languages/Portuguese/StrategyManager.txt new file mode 100644 index 000000000..6a857c6fb --- /dev/null +++ b/Languages/Portuguese/StrategyManager.txt @@ -0,0 +1,53 @@ +button_new= +button_extract= +button_insert= +button_copy= +button_remove= +button_edit= +button_lock= +button_unlock= +button_quit= +button_edit_racial_builds= +button_edit_global= +button_edit_racial_settings= +button_compile= +button_compile_opt= +button_compile_vsai= +button_ok= +button_cancel= +button_yes= +placeholder_operate= +placeholder_ver= +placeholder_set= +placeholder_raceset= +placeholder_compile= +placeholder_setlang= +label_strategies= +label_profiles= +label_Init_code= +label_tier_code= +label_racial_Init_code= +label_racial_build= +err_file_not_found= +err_file_not_writing= +err_strategy_not_found_a= +err_strategy_not_found= +err_strategy_not_found_b= +err_strategy_not_complete= +err_strategy_not_complete_ai= +err_strategy_init_not_set= +err_strategy_init_not_complete= +err_strategy_build_set= +err_strategy_build_complete= +err_global_build_set= +err_profile_not_found_p= +err_not_file_s= +err_not_file_p= +message_remove_strategy= +message_remove_profile= +title_really= +title_strategy_manager= +title_profile_editor= +title_strategy_editor= +title_racial_builds_editor= +title_settings_editor= \ No newline at end of file diff --git a/Languages/Romanian/StrategyManager.txt b/Languages/Romanian/StrategyManager.txt new file mode 100644 index 000000000..6a857c6fb --- /dev/null +++ b/Languages/Romanian/StrategyManager.txt @@ -0,0 +1,53 @@ +button_new= +button_extract= +button_insert= +button_copy= +button_remove= +button_edit= +button_lock= +button_unlock= +button_quit= +button_edit_racial_builds= +button_edit_global= +button_edit_racial_settings= +button_compile= +button_compile_opt= +button_compile_vsai= +button_ok= +button_cancel= +button_yes= +placeholder_operate= +placeholder_ver= +placeholder_set= +placeholder_raceset= +placeholder_compile= +placeholder_setlang= +label_strategies= +label_profiles= +label_Init_code= +label_tier_code= +label_racial_Init_code= +label_racial_build= +err_file_not_found= +err_file_not_writing= +err_strategy_not_found_a= +err_strategy_not_found= +err_strategy_not_found_b= +err_strategy_not_complete= +err_strategy_not_complete_ai= +err_strategy_init_not_set= +err_strategy_init_not_complete= +err_strategy_build_set= +err_strategy_build_complete= +err_global_build_set= +err_profile_not_found_p= +err_not_file_s= +err_not_file_p= +message_remove_strategy= +message_remove_profile= +title_really= +title_strategy_manager= +title_profile_editor= +title_strategy_editor= +title_racial_builds_editor= +title_settings_editor= \ No newline at end of file diff --git a/Languages/Russian/StrategyManager.txt b/Languages/Russian/StrategyManager.txt new file mode 100644 index 000000000..6a857c6fb --- /dev/null +++ b/Languages/Russian/StrategyManager.txt @@ -0,0 +1,53 @@ +button_new= +button_extract= +button_insert= +button_copy= +button_remove= +button_edit= +button_lock= +button_unlock= +button_quit= +button_edit_racial_builds= +button_edit_global= +button_edit_racial_settings= +button_compile= +button_compile_opt= +button_compile_vsai= +button_ok= +button_cancel= +button_yes= +placeholder_operate= +placeholder_ver= +placeholder_set= +placeholder_raceset= +placeholder_compile= +placeholder_setlang= +label_strategies= +label_profiles= +label_Init_code= +label_tier_code= +label_racial_Init_code= +label_racial_build= +err_file_not_found= +err_file_not_writing= +err_strategy_not_found_a= +err_strategy_not_found= +err_strategy_not_found_b= +err_strategy_not_complete= +err_strategy_not_complete_ai= +err_strategy_init_not_set= +err_strategy_init_not_complete= +err_strategy_build_set= +err_strategy_build_complete= +err_global_build_set= +err_profile_not_found_p= +err_not_file_s= +err_not_file_p= +message_remove_strategy= +message_remove_profile= +title_really= +title_strategy_manager= +title_profile_editor= +title_strategy_editor= +title_racial_builds_editor= +title_settings_editor= \ No newline at end of file diff --git a/Languages/Spanish/StrategyManager.txt b/Languages/Spanish/StrategyManager.txt new file mode 100644 index 000000000..6a857c6fb --- /dev/null +++ b/Languages/Spanish/StrategyManager.txt @@ -0,0 +1,53 @@ +button_new= +button_extract= +button_insert= +button_copy= +button_remove= +button_edit= +button_lock= +button_unlock= +button_quit= +button_edit_racial_builds= +button_edit_global= +button_edit_racial_settings= +button_compile= +button_compile_opt= +button_compile_vsai= +button_ok= +button_cancel= +button_yes= +placeholder_operate= +placeholder_ver= +placeholder_set= +placeholder_raceset= +placeholder_compile= +placeholder_setlang= +label_strategies= +label_profiles= +label_Init_code= +label_tier_code= +label_racial_Init_code= +label_racial_build= +err_file_not_found= +err_file_not_writing= +err_strategy_not_found_a= +err_strategy_not_found= +err_strategy_not_found_b= +err_strategy_not_complete= +err_strategy_not_complete_ai= +err_strategy_init_not_set= +err_strategy_init_not_complete= +err_strategy_build_set= +err_strategy_build_complete= +err_global_build_set= +err_profile_not_found_p= +err_not_file_s= +err_not_file_p= +message_remove_strategy= +message_remove_profile= +title_really= +title_strategy_manager= +title_profile_editor= +title_strategy_editor= +title_racial_builds_editor= +title_settings_editor= \ No newline at end of file diff --git a/Languages/Swedish/StrategyManager.txt b/Languages/Swedish/StrategyManager.txt new file mode 100644 index 000000000..6a857c6fb --- /dev/null +++ b/Languages/Swedish/StrategyManager.txt @@ -0,0 +1,53 @@ +button_new= +button_extract= +button_insert= +button_copy= +button_remove= +button_edit= +button_lock= +button_unlock= +button_quit= +button_edit_racial_builds= +button_edit_global= +button_edit_racial_settings= +button_compile= +button_compile_opt= +button_compile_vsai= +button_ok= +button_cancel= +button_yes= +placeholder_operate= +placeholder_ver= +placeholder_set= +placeholder_raceset= +placeholder_compile= +placeholder_setlang= +label_strategies= +label_profiles= +label_Init_code= +label_tier_code= +label_racial_Init_code= +label_racial_build= +err_file_not_found= +err_file_not_writing= +err_strategy_not_found_a= +err_strategy_not_found= +err_strategy_not_found_b= +err_strategy_not_complete= +err_strategy_not_complete_ai= +err_strategy_init_not_set= +err_strategy_init_not_complete= +err_strategy_build_set= +err_strategy_build_complete= +err_global_build_set= +err_profile_not_found_p= +err_not_file_s= +err_not_file_p= +message_remove_strategy= +message_remove_profile= +title_really= +title_strategy_manager= +title_profile_editor= +title_strategy_editor= +title_racial_builds_editor= +title_settings_editor= \ No newline at end of file diff --git a/Manager_language.txt b/Manager_language.txt new file mode 100644 index 000000000..fb42208d3 --- /dev/null +++ b/Manager_language.txt @@ -0,0 +1 @@ +Chinese \ No newline at end of file diff --git a/SetManagerLanguage.bat b/SetManagerLanguage.bat new file mode 100644 index 000000000..4847c0d91 --- /dev/null +++ b/SetManagerLanguage.bat @@ -0,0 +1,21 @@ +@echo off +setlocal enabledelayedexpansion + + +if "%~1"=="" ( + exit /b 1 +) + +set "TargetFilePath=Manager_language.txt" +set "FileContent=%~1" +set "TempFile=%TEMP%\temp_content_%RANDOM%.txt" +( + set /p =%FileContent% "%TempFile%" +move /Y "%TempFile%" "%TargetFilePath%" >nul +if %ERRORLEVEL% neq 0 ( + del "%TempFile%" + exit /b 1 +) +start AMAIStrategyManager.pl +endlocal \ No newline at end of file From d3ba11d54983f6621d24ccf0afac9a3995c98680 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Tue, 4 Feb 2025 22:06:58 +0800 Subject: [PATCH 02/42] Update Manager_language.txt --- Manager_language.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Manager_language.txt b/Manager_language.txt index fb42208d3..155f1ecaf 100644 --- a/Manager_language.txt +++ b/Manager_language.txt @@ -1 +1 @@ -Chinese \ No newline at end of file +Engilsh From f2e79cd170f715ac293829fcee43f6f876bf93e9 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Wed, 5 Feb 2025 19:48:32 +0800 Subject: [PATCH 03/42] Delete SetManagerLanguage.bat --- SetManagerLanguage.bat | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 SetManagerLanguage.bat diff --git a/SetManagerLanguage.bat b/SetManagerLanguage.bat deleted file mode 100644 index 4847c0d91..000000000 --- a/SetManagerLanguage.bat +++ /dev/null @@ -1,21 +0,0 @@ -@echo off -setlocal enabledelayedexpansion - - -if "%~1"=="" ( - exit /b 1 -) - -set "TargetFilePath=Manager_language.txt" -set "FileContent=%~1" -set "TempFile=%TEMP%\temp_content_%RANDOM%.txt" -( - set /p =%FileContent% "%TempFile%" -move /Y "%TempFile%" "%TargetFilePath%" >nul -if %ERRORLEVEL% neq 0 ( - del "%TempFile%" - exit /b 1 -) -start AMAIStrategyManager.pl -endlocal \ No newline at end of file From df1e880685a85230d7dc9a52de7bf5cd766f1e40 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Wed, 5 Feb 2025 19:48:56 +0800 Subject: [PATCH 04/42] Add files via upload --- AMAIStrategyManager.pl | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 5b70a9c67..e6b490475 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -79,13 +79,13 @@ sub get_translation { my $stratframe = $notebook->add("strat", -label => get_translation('label_strategies')); my $profileframe = $notebook->add("profile", -label => get_translation('label_profiles')); my $stratlb = $stratframe->Listbox(-height => 0)->pack; -my $stratlb = $stratframe->Scrolled('Listbox', +$stratlb = $stratframe->Scrolled('Listbox', -scrollbars => 'se', -height => 0, )->pack(-fill => 'both', -expand => 1); tie $strat, "Tk::Listbox", $stratlb; my $profilelb = $profileframe->Listbox(-height => 0)->pack; -my $profilelb = $profileframe->Scrolled('Listbox', +$profilelb = $profileframe->Scrolled('Listbox', -scrollbars => 'se', -height => 0, )->pack(-fill => 'both', -expand => 1); @@ -275,11 +275,12 @@ sub get_translation { -height => 1, )->pack; $langopt = $lframe->Optionmenu( - # -options => [map { [$_ => $_] } @sorted_languages], -command => sub { my ($choice) = @_; - system("SetManagerLanguage.bat", "$choice"); - exit(0); + open(SETLANG, ">Manager_language.txt") or die get_translation('err_file_not_writing', ""); + print SETLANG $choice; + close(SETLANG); + exec($^X, $0, @ARGV); }, -variable => \$lang_code, -width => 20 From d6a81ab14a25ab42e94f0ad52eb1bd87c849fc74 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sat, 8 Feb 2025 00:57:13 +0800 Subject: [PATCH 05/42] Add files via upload --- REFORGED/GlobalSettings.txt | 193 ++++++++++++++++++----------------- ROC/GlobalSettings.txt | 194 ++++++++++++++++++------------------ TFT/GlobalSettings.txt | 193 ++++++++++++++++++----------------- 3 files changed, 289 insertions(+), 291 deletions(-) diff --git a/REFORGED/GlobalSettings.txt b/REFORGED/GlobalSettings.txt index 81b8a1845..e91a8b17d 100644 --- a/REFORGED/GlobalSettings.txt +++ b/REFORGED/GlobalSettings.txt @@ -1,97 +1,96 @@ -Variable Setting Value Comment -sleep_multiplier 1 increases performance by checking stuff not so often -slm_start 6 how many computer players is needed tor the sleep multiplier to start increasing. -slm_end 18 how many computer players is needed tor the sleep multiplier to stop increasing. -slm_start_mult 1 how much is the sleep multiplied when it's below the slm_start condition -slm_end_mult 2.9 how much is the sleep multiplied when it's above the slm_end condition -hero_radius 200 scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move -use_linear_upkeep_saving false should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border? -repair_threshold 6 computers only repair buildings if they have more than this many workers -repair_threshold_threatened 8 computers only repair buildings when the town is under attack if they got more than this many workers -max_follow_dist 1000 Distance behind the army a zeppelin follows -neutral_hero_time 26 when is neutral heroes available in seconds /5 -buy_distance 350 how close to a shop do a unit have to be for buying? -buy_timeout_large 120 time in seconds the hero goes to a shop before it gives up if it haven't reached it -buy_timeout_small 3 time in seconds a hero tries to buy items at shop before giving up -build_array_reset_time 100 every this * 5 seconds, the build array is reset -rp_strat_normal 250 normalizing strategy priorities added from strengths with this value -strategy_tier_bonus 22 the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy -attacking_strategy 4 strategy when attacking enemy players -focus_fire_limit 35 if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero -focus_fire_ranged_dist 600 Distance from ranged units enemy units can be targeted with focus fire -focus_fire_melee_dist 333 Distance from melee units enemy units can be targeted with focus fire -flee_health_percentage 0.30 Units flee from battle if the health goes below his % value(0.25 = 25%) -flee_minimum_health 100 Units flee from battle if the health goes below this -statue_distance 300 how near the units a statue used by undead should be in the fights -teleport_radius 800 units will stay within this radius from a hero that is using town portal -gold_exchange_level 650 computers give extra gold above this value to other computers on the same team in need of gold -wood_exchange_level 350 computers give extra lumber above this value to other computers on the same team in need of lumber -max_towns 5 how many towns is a computer allowed to have? -add_tag true Add the [AMAI] tag in front of name -add_skill true Add the current skill after the name -fav_hero_add 10 priority added to heroes to be picked if they are favorites of the used profile -max_harass_groups 10 how many different harass groups you can use -attacking_aggression 2 the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5 -expansion_radius 1250 the radius araound a mine computers check for creeps before expanding there -harass_radius_attack_ranged 800 how far away from ranged enemy units harassing units attack a inferior enemy unit -harass_radius_attack_melee 400 how far away from melee enemy units harassing units attack a inferior enemy unit -harass_radius_flee_ranged 1500 how far away from ranged enemy units harassing units turn and flee -harass_radius_flee_melee 800 how far away from melee enemy units harassing units turn and flee -chatting true computers use chat taunts -full_threat_distance 1000 a enemy army within this distance is counted as a full threat -no_threat_distance 2000 a enemy army outside this distance is counted as no threat -distance_threat_exponent 0.8 how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance -distance_threat_mult 540 how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town -atl_time_start 300 accepted threat level increase starts at this time -atl_time_end 900 and ends at that time -atl_time_start_val 10 it starts with this value -atl_time_end_val 20 and ends with that value -atl_enemy_start 1 accepted threat level multiplier increases at that enemy number -atl_enemy_end 4 until that enemy number -atl_enemy_start_mult 1 the multiplier starts for accepted threat level starts with this -atl_enemy_end_mult 1.5 and ends with this -teleport_low_threat 50 Army uses TP to get home and defend if a threat is greater than this -teleport_high_threat 100 Army uses TP to get home and defend if a threat is greater than this -teleport_low_threat_distance 4000 Army won't use TP home if they are closer to base than this and a low threat level appears -teleport_high_threat_distance 2300 Army won't use TP home if they are closer to base than this and a high threat level appears -teleport_army_min_strength 20 how big the army need to be for use of TP to threatened town -teleport_min_threat 50 minimum threat level TP use is allowed on -shredder_peon_count 10 how many peons does a goblin shredder replace in lumber harvesting -minimum_peon_wood 2000 computers don't build any workers for lumber harvesting if they have more lumber than this -maximum_peon_wood 200 computers build all needed workers for lumber harvesting if they have lumber lower than this -ver_neutral_heroes_available true does the version have neutral heroes ? -ver_neutral_hero_number 8 how many neutral heroes ? -ver_only_heroes_buy false can only heroes buy stuff ? -ver_food_limit GetPlayerState(ai_player, PLAYER_STATE_FOOD_CAP_CEILING) what is the versions food limit ? -normal_battle_radius 1500 units within that radius are considered belonging to the current battle -creep_battle_radius 750 same as with normal_battle_radius, but for battles against creeps -expansion_taken_radius 1300 how near a mine a enemy building must be to make amai recognize it as taken -ver_hero_base_value 2 what is the base strength of a hero (the level number is added to get the actual strength) ? -ver_hero_ultimate_level 6 at what level do the heroes get their ultimates ? -ver_hero_ultimate_value 3 how much extra strength does the ultimate give to the hero ? -ver_creeps_attack_buildings_dist 1850 how far away do creeps attack buildings ? -ver_mercs_night_buy false can mercs be bought at night without waking up creeps ? -ver_tower_check_radius 2000 check for towers in this radius around a target -ver_harass_tower_check_radius 2200 check for towers in this radius during harassing -ver_strat_change_enemy_strength_min 25 don't allow strategy change unless the maximum strength of all enemy players in the game is above this. -destroy_buildings_on_defeat false Should the buildings of the AI be destroyed on defeat or given to neutral player ? -attack_reform_length 10 reform the attack group (getting new units) every that time on an attack (in seconds / 2) -front_base_distance difficulty * 50 + 900 the distance of the front locations from the start location -ver_heroes true Does this version have heroes? -fixedcomputername false Enable to force computers to have there fixed name instead of a profile name -green_creep_camp_strength_bonus 0 Bonus strength added to minor creep camps -orange_creep_camp_strength_bonus 2 Bonus strength added to mediocre creep camps -red_creep_camp_strength_bonus 4 Bonus strength added to major creep camps -debugging false Can turn on for debugging mode to display debug type messages -strategy_change_threshold 1.05 New strategy priority must be larger than this multiple to the current strategy -disable_surrender false Set to true to stop amai from giving up early when it detects its going to lose -major_hero_skill_value 60 Priority to choose the first line of hero skills -minor_hero_skill_value 30 Priority to choose the second line of hero skills -rare_hero_skill_value 10 Priority to choose the third line of hero skills -fav_hero_add 20 priority added to heroes to be picked if they are favorites of the used profile -ver_optimal_gold 5 The optimal number of peons that should be harvesting gold -ver_flee_multiple1 1 Multiplier to players strength at lowest aggression to measure if amai is allowed to flee -ver_flee_multiple2 2 Multiplier to players strength at highest aggression to measure if amai allowed to flee -ver_flee_multiple3 3 Multipler to players strength at highest aggression to measure if amai will flee -ver_low_aggression -15 Aggression below this uses the lowest strength flee multiplier -ver_high_aggression 45 Agression above this uses the highest strength flee multiplier +Variable Setting Value Comment +sleep_multiplier 1 increases performance by checking stuff not so often +slm_start 6 how many computer players is needed tor the sleep multiplier to start increasing. +slm_end 18 how many computer players is needed tor the sleep multiplier to stop increasing. +slm_start_mult 1 how much is the sleep multiplied when it's below the slm_start condition +slm_end_mult 2.9 how much is the sleep multiplied when it's above the slm_end condition +hero_radius 200 scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move +use_linear_upkeep_saving false should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border? +repair_threshold 6 computers only repair buildings if they have more than this many workers +repair_threshold_threatened 8 computers only repair buildings when the town is under attack if they got more than this many workers +max_follow_dist 1000 Distance behind the army a zeppelin follows +neutral_hero_time 26 when is neutral heroes available in seconds /5 +buy_distance 350 how close to a shop do a unit have to be for buying? +buy_timeout_large 120 time in seconds the hero goes to a shop before it gives up if it haven't reached it +buy_timeout_small 3 time in seconds a hero tries to buy items at shop before giving up +build_array_reset_time 100 every this * 5 seconds, the build array is reset +rp_strat_normal 250 normalizing strategy priorities added from strengths with this value +strategy_tier_bonus 22 the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy +attacking_strategy 4 strategy when attacking enemy players +focus_fire_limit 35 if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero +focus_fire_ranged_dist 600 Distance from ranged units enemy units can be targeted with focus fire +focus_fire_melee_dist 333 Distance from melee units enemy units can be targeted with focus fire +flee_health_percentage 0.30 Units flee from battle if the health goes below his % value(0.25 is 25%) +flee_minimum_health 100 Units flee from battle if the health goes below this +statue_distance 300 how near the units a statue used by undead should be in the fights +teleport_radius 800 units will stay within this radius from a hero that is using town portal +gold_exchange_level 650 computers give extra gold above this value to other computers on the same team in need of gold +wood_exchange_level 350 computers give extra lumber above this value to other computers on the same team in need of lumber +max_towns 5 how many towns is a computer allowed to have? +add_tag true Add the [AMAI] tag in front of name +add_skill true Add the current skill after the name +fav_hero_add 10 priority added to heroes to be picked if they are favorites of the used profile +max_harass_groups 10 how many different harass groups you can use +attacking_aggression 2 the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5 +expansion_radius 1250 the radius araound a mine computers check for creeps before expanding there +harass_radius_attack_ranged 800 how far away from ranged enemy units harassing units attack a inferior enemy unit +harass_radius_attack_melee 400 how far away from melee enemy units harassing units attack a inferior enemy unit +harass_radius_flee_ranged 1500 how far away from ranged enemy units harassing units turn and flee +harass_radius_flee_melee 800 how far away from melee enemy units harassing units turn and flee +chatting true computers use chat taunts +full_threat_distance 1000 a enemy army within this distance is counted as a full threat +no_threat_distance 2000 a enemy army outside this distance is counted as no threat +distance_threat_exponent 0.8 how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance +distance_threat_mult 540 how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town +atl_time_start 300 accepted threat level increase starts at this time +atl_time_end 900 and ends at that time +atl_time_start_val 10 it starts with this value +atl_time_end_val 20 and ends with that value +atl_enemy_start 1 accepted threat level multiplier increases at that enemy number +atl_enemy_end 4 until that enemy number +atl_enemy_start_mult 1 the multiplier starts for accepted threat level starts with this +atl_enemy_end_mult 1.5 and ends with this +teleport_low_threat 50 Army uses TP to get home and defend if a threat is greater than this +teleport_high_threat 100 Army uses TP to get home and defend if a threat is greater than this +teleport_low_threat_distance 4000 Army won't use TP home if they are closer to base than this and a low threat level appears +teleport_high_threat_distance 2300 Army won't use TP home if they are closer to base than this and a high threat level appears +teleport_army_min_strength 20 how big the army need to be for use of TP to threatened town +teleport_min_threat 50 minimum threat level TP use is allowed on +shredder_peon_count 10 how many peons does a goblin shredder replace in lumber harvesting +minimum_peon_wood 2000 computers don't build any workers for lumber harvesting if they have more lumber than this +maximum_peon_wood 200 computers build all needed workers for lumber harvesting if they have lumber lower than this +ver_neutral_heroes_available true does the version have neutral heroes ? +ver_neutral_hero_number 8 how many neutral heroes ? +ver_only_heroes_buy false can only heroes buy stuff ? +ver_food_limit GetPlayerState(ai_player, PLAYER_STATE_FOOD_CAP_CEILING) what is the versions food limit ? +normal_battle_radius 1500 units within that radius are considered belonging to the current battle +creep_battle_radius 750 same as with normal_battle_radius, but for battles against creeps +expansion_taken_radius 1300 how near a mine a enemy building must be to make amai recognize it as taken +ver_hero_base_value 2 what is the base strength of a hero (the level number is added to get the actual strength) ? +ver_hero_ultimate_level 6 at what level do the heroes get their ultimates ? +ver_hero_ultimate_value 3 how much extra strength does the ultimate give to the hero ? +ver_creeps_attack_buildings_dist 1850 how far away do creeps attack buildings ? +ver_mercs_night_buy false can mercs be bought at night without waking up creeps ? +ver_tower_check_radius 2000 check for towers in this radius around a target +ver_harass_tower_check_radius 2200 check for towers in this radius during harassing +ver_strat_change_enemy_strength_min 25 don't allow strategy change unless the maximum strength of all enemy players in the game is above this. +destroy_buildings_on_defeat false Should the buildings of the AI be destroyed on defeat or given to neutral player ? +attack_reform_length 10 reform the attack group (getting new units) every that time on an attack (in seconds / 2) +front_base_distance difficulty * 50 + front_base_distance the distance of the front locations from the start location +ver_heroes true Does this version have heroes? +fixedcomputername false Enable to force computers to have there fixed name instead of a profile name +green_creep_camp_strength_bonus 0 Bonus strength added to minor creep camps +orange_creep_camp_strength_bonus 2 Bonus strength added to mediocre creep camps +red_creep_camp_strength_bonus 4 Bonus strength added to major creep camps +debugging false Can turn on for debugging mode to display debug type messages +strategy_change_threshold 1.05 New strategy priority must be larger than this multiple to the current strategy +disable_surrender false Set to true to stop amai from giving up early when it detects its going to lose +major_hero_skill_value 60 Priority to choose the first line of hero skills +minor_hero_skill_value 30 Priority to choose the second line of hero skills +rare_hero_skill_value 10 Priority to choose the third line of hero skills +ver_optimal_gold 5 The optimal number of peons that should be harvesting gold +ver_flee_multiple1 1 Multiplier to players strength at lowest aggression to measure if amai is allowed to flee +ver_flee_multiple2 2 Multiplier to players strength at highest aggression to measure if amai allowed to flee +ver_flee_multiple3 3 Multipler to players strength at highest aggression to measure if amai will flee +ver_low_aggression -15 Aggression below this uses the lowest strength flee multiplier +ver_high_aggression 45 Agression above this uses the highest strength flee multiplier diff --git a/ROC/GlobalSettings.txt b/ROC/GlobalSettings.txt index 10f9cfa71..f66c14ae0 100644 --- a/ROC/GlobalSettings.txt +++ b/ROC/GlobalSettings.txt @@ -1,97 +1,97 @@ -Variable Setting Value Comment -sleep_multiplier 1 increases performance by checking stuff not so often -slm_start 4 how many computer players is needed tor the sleep multiplier to start increasing. -slm_end 10 how many computer players is needed tor the sleep multiplier to stop increasing. -slm_start_mult 1 how much is the sleep multiplied when it's below the slm_start condition -slm_end_mult 2 how much is the sleep multiplied when it's above the slm_end condition -hero_radius 200 scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move -use_linear_upkeep_saving false should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border? -repair_threshold 6 computers only repair buildings if they have more than this many workers -repair_threshold_threatened 8 computers only repair buildings when the town is under attack if they got more than this many workers -max_follow_dist 1000 Distance behind the arme a zeppelin follows -neutral_hero_time 25 when is neutral heroes available in seconds /5 -buy_distance 350 how close to a shop do a unit have to be for buying? -buy_timeout_large 120 time in seconds the hero goes to a shop before it gives up if it haven't reached it -buy_timeout_small 15 time in seconds a hero tries to buy items at shop before giving up -build_array_reset_time 100 every this * 5 seconds, the build array is reset -rp_strat_normal 250 normalizing strategy priorities added from strengths with this value -strategy_tier_bonus 35 the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy -attacking_strategy 4 strategy when attacking enemy players -focus_fire_limit 35 if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero -focus_fire_ranged_dist 600 Distance from ranged units enemy units can be targeted with focus fire -focus_fire_melee_dist 50 Distance from melee units enemy units can be targeted with focus fire -flee_health_percentage 0.25 Units flee from battle if the health goes below his % value(0.25 = 25%) -flee_minimum_health 100 Units flee from battle if the health goes below this -statue_distance 300 how near the units a statue used by undead should be in the fights -teleport_radius 800 units will stay within this radius from a hero that is using town portal -gold_exchange_level 650 computers give extra gold above this value to other computers on the same team in need of gold -wood_exchange_level 350 computers give extra lumber above this value to other computers on the same team in need of lumber -max_towns 5 how many towns is a computer allowed to have? -add_tag true Add the [AMAI] tag in front of name -add_skill true Add the current skill after the name -fav_hero_add 20 priority added to heroes to be picked if they are favorites of the used profile -max_harass_groups 10 how many different harass groups you can use -attacking_aggression 1 the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5 -expansion_radius 1250 the radius araound a mine computers check for creeps before expanding there -harass_radius_attack_ranged 800 how far away from ranged enemy units harassing units attack a inferior enemy unit -harass_radius_attack_melee 400 how far away from melee enemy units harassing units attack a inferior enemy unit -harass_radius_flee_ranged 1200 how far away from ranged enemy units harassing units turn and flee -harass_radius_flee_melee 800 how far away from melee enemy units harassing units turn and flee -chatting true computers use chat taunts -full_threat_distance 600 a enemy army within this distance is counted as a full threat -no_threat_distance 3000 a enemy army outside this distance is counted as no threat -distance_threat_exponent 0.8 how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance -distance_threat_mult 540 how much the threat vlaue goes up on a rown when a enemy army aproashes, higher value means higher threat to town -atl_time_start 300 accepted threat level increase starts at this time -atl_time_end 900 and ends at that time -atl_time_start_val 10 it starts with this value -atl_time_end_val 20 and ends with that value -atl_enemy_start 1 accepted threat level multiplier increases at that enemy number -atl_enemy_end 4 until that enemy number -atl_enemy_start_mult 1 the multiplier starts for accepted threat level starts with this -atl_enemy_end_mult 1.5 and ends with this -teleport_low_threat 70 Army uses TP to get home and defend if a threat is greater than this -teleport_high_threat 120 Army uses TP to get home and defend if a threat is greater than this -teleport_low_threat_distance 5000 Army won't use TP home if they are closer to base than this and a low threat level appears -teleport_high_threat_distance 3000 Army won't use TP home if they are closer to base than this and a high threat level appears -teleport_army_min_strength 20 how big the army need to be for use of TP to threatened town -teleport_min_threat 70 minimum threat level TP use is allowed on -shredder_peon_count 10 how many peons does a goblin shredder replace in lumber harvesting -minimum_peon_wood 2000 computers don't build any workers for lumber harvesting if they have more lumber than this -maximum_peon_wood 200 computers build all needed workers for lumber harvesting if they have lumber lower than this -ver_neutral_heroes_available false does the version have neutral heroes ? -ver_neutral_hero_number 0 how many neutral heroes ? -ver_only_heroes_buy true can only heroes buy stuff ? -ver_food_limit GetPlayerState(ai_player, PLAYER_STATE_FOOD_CAP_CEILING) what is the versions food limit ? -normal_battle_radius 1500 units within that radius are considered belonging to the current battle -creep_battle_radius 750 same as with normal_battle_radius, but for battles against creeps -expansion_taken_radius 1300 how near a mine a enemy building must be to make amai recognize it as taken -ver_strat_change_enemy_strength_min 25 don't allow strategy change unless the maximum strength of all enemy players in the game is above this. -ver_hero_base_value 2 what is the base strength of a hero (the level number is added to get the actual strength) ? -ver_hero_ultimate_level 6 at what level do the heroes get their ultimates ? -ver_hero_ultimate_value 3 how much extra strength does the ultimate give to the hero ? -ver_creeps_attack_buildings_dist 1500 how far away do creeps attack buildings ? -ver_mercs_night_buy false can mercs be bought at night without waking up creeps ? -ver_tower_check_radius 2000 check for towers in this radius around a target -ver_harass_tower_check_radius 1400 check for towers in this radius during harassing -destroy_buildings_on_defeat false Should the buildings of the AI be destroyed on defeat or given to neutral player ? -attack_reform_length 10 reform the attack group (getting new units) every that time on an attack (in seconds / 2) -ver_heroes true Does this version have heroes? -front_base_distance difficulty * 50 + 900 the distance of the front locations from the start location -fixedcomputername false Enable to force computers to have there fixed name instead of a profile name -debugging false Can turn on for debugging mode to display debug type messages -green_creep_camp_strength_bonus 0 Bonus strength added to minor creep camps -orange_creep_camp_strength_bonus 2 Bonus strength added to mediocre creep camps -red_creep_camp_strength_bonus 4 Bonus strength added to major creep camps -strategy_change_threshold 1.05 New strategy priority must be larger than this multiple to the current strategy -disable_surrender false Set to true to stop amai from giving up early when it detects its going to lose -minor_hero_skill_value 30 Priority to choose the second line of hero skills -rare_hero_skill_value 10 Priority to choose the third line of hero skills -major_hero_skill_value 60 Priority to choose the first line of hero skills -ver_optimal_gold 5 The optimal number of peons that should be harvesting gold -fav_hero_add 20 priority added to heroes to be picked if they are favorites of the used profile -ver_flee_multiple1 1 Multiplier to players strength at lowest aggression to measure if amai is allowed to flee -ver_flee_multiple2 2 Multiplier to players strength at highest aggression to measure if amai allowed to flee -ver_flee_multiple3 3 Multipler to players strength at highest aggression to measure if amai will flee -ver_low_aggression -15 Aggression below this uses the lowest strength flee multiplier -ver_high_aggression 45 Agression above this uses the highest strength flee multiplier +Variable Setting Value Comment +sleep_multiplier 1 increases performance by checking stuff not so often +slm_start 6 how many computer players is needed tor the sleep multiplier to start increasing. +slm_end 18 how many computer players is needed tor the sleep multiplier to stop increasing. +slm_start_mult 1 how much is the sleep multiplied when it's below the slm_start condition +slm_end_mult 2.9 how much is the sleep multiplied when it's above the slm_end condition +hero_radius 200 scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move +use_linear_upkeep_saving false should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border? +repair_threshold 6 computers only repair buildings if they have more than this many workers +repair_threshold_threatened 8 computers only repair buildings when the town is under attack if they got more than this many workers +max_follow_dist 1000 Distance behind the army a zeppelin follows +neutral_hero_time 26 when is neutral heroes available in seconds /5 +buy_distance 350 how close to a shop do a unit have to be for buying? +buy_timeout_large 120 time in seconds the hero goes to a shop before it gives up if it haven't reached it +buy_timeout_small 3 time in seconds a hero tries to buy items at shop before giving up +build_array_reset_time 100 every this * 5 seconds, the build array is reset +rp_strat_normal 250 normalizing strategy priorities added from strengths with this value +strategy_tier_bonus 22 the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy +attacking_strategy 4 strategy when attacking enemy players +focus_fire_limit 35 if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero +focus_fire_ranged_dist 600 Distance from ranged units enemy units can be targeted with focus fire +focus_fire_melee_dist 333 Distance from melee units enemy units can be targeted with focus fire +flee_health_percentage 0.30 Units flee from battle if the health goes below his % value(0.25 = 25%) +flee_minimum_health 100 Units flee from battle if the health goes below this +statue_distance 300 how near the units a statue used by undead should be in the fights +teleport_radius 800 units will stay within this radius from a hero that is using town portal +gold_exchange_level 650 computers give extra gold above this value to other computers on the same team in need of gold +wood_exchange_level 350 computers give extra lumber above this value to other computers on the same team in need of lumber +max_towns 5 how many towns is a computer allowed to have? +add_tag true Add the [AMAI] tag in front of name +add_skill true Add the current skill after the name +fav_hero_add 10 priority added to heroes to be picked if they are favorites of the used profile +max_harass_groups 10 how many different harass groups you can use +attacking_aggression 2 the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5 +expansion_radius 1250 the radius araound a mine computers check for creeps before expanding there +harass_radius_attack_ranged 800 how far away from ranged enemy units harassing units attack a inferior enemy unit +harass_radius_attack_melee 400 how far away from melee enemy units harassing units attack a inferior enemy unit +harass_radius_flee_ranged 1500 how far away from ranged enemy units harassing units turn and flee +harass_radius_flee_melee 800 how far away from melee enemy units harassing units turn and flee +chatting true computers use chat taunts +full_threat_distance 1000 a enemy army within this distance is counted as a full threat +no_threat_distance 2000 a enemy army outside this distance is counted as no threat +distance_threat_exponent 0.8 how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance +distance_threat_mult 540 how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town +atl_time_start 300 accepted threat level increase starts at this time +atl_time_end 900 and ends at that time +atl_time_start_val 10 it starts with this value +atl_time_end_val 20 and ends with that value +atl_enemy_start 1 accepted threat level multiplier increases at that enemy number +atl_enemy_end 4 until that enemy number +atl_enemy_start_mult 1 the multiplier starts for accepted threat level starts with this +atl_enemy_end_mult 1.5 and ends with this +teleport_low_threat 50 Army uses TP to get home and defend if a threat is greater than this +teleport_high_threat 100 Army uses TP to get home and defend if a threat is greater than this +teleport_low_threat_distance 4000 Army won't use TP home if they are closer to base than this and a low threat level appears +teleport_high_threat_distance 2300 Army won't use TP home if they are closer to base than this and a high threat level appears +teleport_army_min_strength 20 how big the army need to be for use of TP to threatened town +teleport_min_threat 50 minimum threat level TP use is allowed on +shredder_peon_count 12 how many peons does a goblin shredder replace in lumber harvesting +minimum_peon_wood 2000 computers don't build any workers for lumber harvesting if they have more lumber than this +maximum_peon_wood 200 computers build all needed workers for lumber harvesting if they have lumber lower than this +ver_neutral_heroes_available true does the version have neutral heroes ? +ver_neutral_hero_number 8 how many neutral heroes ? +ver_only_heroes_buy false can only heroes buy stuff ? +ver_food_limit GetPlayerState(ai_player, PLAYER_STATE_FOOD_CAP_CEILING) what is the versions food limit ? +normal_battle_radius 1500 units within that radius are considered belonging to the current battle +creep_battle_radius 750 same as with normal_battle_radius, but for battles against creeps +expansion_taken_radius 1300 how near a mine a enemy building must be to make amai recognize it as taken +ver_hero_base_value 4 what is the base strength of a hero (the level number is added to get the actual strength) ? +ver_hero_ultimate_level 6 at what level do the heroes get their ultimates ? +ver_hero_ultimate_value 6 how much extra strength does the ultimate give to the hero ? +ver_creeps_attack_buildings_dist 1850 how far away do creeps attack buildings ? +ver_mercs_night_buy false can mercs be bought at night without waking up creeps ? +ver_tower_check_radius 2000 check for towers in this radius around a target +ver_harass_tower_check_radius 2200 check for towers in this radius during harassing +ver_strat_change_enemy_strength_min 25 don't allow strategy change unless the maximum strength of all enemy players in the game is above this. +destroy_buildings_on_defeat false Should the buildings of the AI be destroyed on defeat or given to neutral player ? +attack_reform_length 10 reform the attack group (getting new units) every that time on an attack (in seconds / 2) +front_base_distance difficulty * 50 + front_base_distance the distance of the front locations from the start location +ver_heroes true Does this version have heroes? +fixedcomputername false Enable to force computers to have there fixed name instead of a profile name +green_creep_camp_strength_bonus 0 Bonus strength added to minor creep camps +orange_creep_camp_strength_bonus 2 Bonus strength added to mediocre creep camps +red_creep_camp_strength_bonus 4 Bonus strength added to major creep camps +debugging false Can turn on for debugging mode to display debug type messages +strategy_change_threshold 1.05 New strategy priority must be larger than this multiple to the current strategy +disable_surrender false Set to true to stop amai from giving up early when it detects its going to lose +major_hero_skill_value 60 Priority to choose the first line of hero skills +minor_hero_skill_value 30 Priority to choose the second line of hero skills +rare_hero_skill_value 10 Priority to choose the third line of hero skills +fav_hero_add 20 priority added to heroes to be picked if they are favorites of the used profile +ver_optimal_gold 5 The optimal number of peons that should be harvesting gold +ver_flee_multiple1 1 Multiplier to players strength at lowest aggression to measure if amai is allowed to flee +ver_flee_multiple2 2 Multiplier to players strength at highest aggression to measure if amai allowed to flee +ver_flee_multiple3 3 Multipler to players strength at highest aggression to measure if amai will flee +ver_low_aggression -15 Aggression below this uses the lowest strength flee multiplier +ver_high_aggression 45 Agression above this uses the highest strength flee multiplier diff --git a/TFT/GlobalSettings.txt b/TFT/GlobalSettings.txt index 687db6c14..9e63c6b55 100644 --- a/TFT/GlobalSettings.txt +++ b/TFT/GlobalSettings.txt @@ -1,97 +1,96 @@ -Variable Setting Value Comment -sleep_multiplier 1 increases performance by checking stuff not so often -slm_start 6 how many computer players is needed tor the sleep multiplier to start increasing. -slm_end 18 how many computer players is needed tor the sleep multiplier to stop increasing. -slm_start_mult 1 how much is the sleep multiplied when it's below the slm_start codition -slm_end_mult 2.9 how much is the sleep multiplied when it's above the slm_end codition -hero_radius 200 scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move -use_linear_upkeep_saving false should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border? -repair_threshold 6 computers only repair buildings if they have more than this many workers -repair_threshold_threatened 8 computers only repair buildings when the town is under attack if they got more than this many workers -max_follow_dist 1000 Distance behind the army a zeppelin follows -neutral_hero_time 26 when is neutral heroes available in seconds /5 -buy_distance 350 how close to a shop do a unit have to be for buying? -buy_timeout_large 120 time in seconds the hero goes to a shop before it gives up if it haven't reached it -buy_timeout_small 3 time in seconds a hero tries to buy items at shop before giving up -build_array_reset_time 100 every this * 5 seconds, the build array is reset -rp_strat_normal 250 normalizing strategy priorities added from strengths with this value -strategy_tier_bonus 22 the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy -attacking_strategy 4 strategy when attacking enemy players -focus_fire_limit 35 if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero -focus_fire_ranged_dist 600 Distance from ranged units enemy units can be targeted with focus fire -focus_fire_melee_dist 333 Distance from melee units enemy units can be targeted with focus fire -flee_health_percentage 0.30 Units flee from battle if the health goes below his % value(0.25 = 25%) -flee_minimum_health 100 Units flee from battle if the health goes below this -statue_distance 300 how near the units a statue used by undead should be in the fights -teleport_radius 800 units will stay within this radius from a hero that is using town portal -gold_exchange_level 650 computers give extra gold above this value to other computers on the same team in need of gold -wood_exchange_level 350 computers give extra lumber above this value to other computers on the same team in need of lumber -max_towns 5 how many towns is a computer allowed to have? -add_tag true Add the [AMAI] tag in front of name -add_skill true Add the current skill after the name -fav_hero_add 10 priority added to heroes to be picked if they are favorites of the used profile -max_harass_groups 10 how many different harass groups you can use -attacking_aggression 2 the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5 -expansion_radius 1250 the radius araound a mine computers check for creeps before expanding there -harass_radius_attack_ranged 800 how far away from ranged enemy units harassing units attack a inferior enemy unit -harass_radius_attack_melee 400 how far away from melee enemy units harassing units attack a inferior enemy unit -harass_radius_flee_ranged 1500 how far away from ranged enemy units harassing units turn and flee -harass_radius_flee_melee 800 how far away from melee enemy units harassing units turn and flee -chatting true computers use chat taunts -full_threat_distance 1000 a enemy army within this distance is counted as a full threat -no_threat_distance 2000 a enemy army outside this distance is counted as no threat -distance_threat_exponent 0.8 how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance -distance_threat_mult 540 how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town -atl_time_start 300 accepted threat level increase starts at this time -atl_time_end 900 and ends at that time -atl_time_start_val 10 it starts with this value -atl_time_end_val 20 and ends with that value -atl_enemy_start 1 accepted threat level multiplier increases at that enemy number -atl_enemy_end 4 until that enemy number -atl_enemy_start_mult 1 the multiplier starts for accepted threat level starts with this -atl_enemy_end_mult 1.5 and ends with this -teleport_low_threat 50 Army uses TP to get home and defend if a threat is greater than this -teleport_high_threat 100 Army uses TP to get home and defend if a threat is greater than this -teleport_low_threat_distance 4000 Army won't use TP home if they are closer to base than this and a low threat level appears -teleport_high_threat_distance 2300 Army won't use TP home if they are closer to base than this and a high threat level appears -teleport_army_min_strength 20 how big the army need to be for use of TP to threatened town -teleport_min_threat 50 minimum threat level TP use is allowed on -shredder_peon_count 12 how many peons does a goblin shredder replace in lumber harvesting -minimum_peon_wood 2000 computers don't build any workers for lumber harvesting if they have more lumber than this -maximum_peon_wood 200 computers build all needed workers for lumber harvesting if they have lumber lower than this -ver_neutral_heroes_available true does the version have neutral heroes ? -ver_neutral_hero_number 8 how many neutral heroes ? -ver_only_heroes_buy false can only heroes buy stuff ? -ver_food_limit GetPlayerState(ai_player, PLAYER_STATE_FOOD_CAP_CEILING) what is the versions food limit ? -normal_battle_radius 1500 units within that radius are considered belonging to the current battle -creep_battle_radius 750 same as with normal_battle_radius, but for battles against creeps -expansion_taken_radius 1300 how near a mine a enemy building must be to make amai recognize it as taken -ver_hero_base_value 2 what is the base strength of a hero (the level number is added to get the actual strength) ? -ver_hero_ultimate_level 6 at what level do the heroes get their ultimates ? -ver_hero_ultimate_value 3 how much extra strength does the ultimate give to the hero ? -ver_creeps_attack_buildings_dist 1850 how far away do creeps attack buildings ? -ver_mercs_night_buy false can mercs be bought at night without waking up creeps ? -ver_tower_check_radius 2000 check for towers in this radius around a target -ver_harass_tower_check_radius 2200 check for towers in this radius during harassing -ver_strat_change_enemy_strength_min 25 don't allow strategy change unless the maximum strength of all enemy players in the game is above this. -destroy_buildings_on_defeat false Should the buildings of the AI be destroyed on defeat or given to neutral player ? -attack_reform_length 10 reform the attack group (getting new units) every that time on an attack (in seconds / 2) -front_base_distance difficulty * 50 + 900 the distance of the front locations from the start location -ver_heroes true Does this version have heroes? -fixedcomputername false Enable to force computers to have there fixed name instead of a profile name -green_creep_camp_strength_bonus 0 Bonus strength added to minor creep camps -orange_creep_camp_strength_bonus 2 Bonus strength added to mediocre creep camps -red_creep_camp_strength_bonus 4 Bonus strength added to major creep camps -debugging false Can turn on for debugging mode to display debug type messages -strategy_change_threshold 1.05 New strategy priority must be larger than this multiple to the current strategy -disable_surrender false Set to true to stop amai from giving up early when it detects its going to lose -major_hero_skill_value 60 Priority to choose the first line of hero skills -minor_hero_skill_value 30 Priority to choose the second line of hero skills -rare_hero_skill_value 10 Priority to choose the third line of hero skills -fav_hero_add 20 priority added to heroes to be picked if they are favorites of the used profile -ver_optimal_gold 5 The optimal number of peons that should be harvesting gold -ver_flee_multiple1 1 Multiplier to players strength at lowest aggression to measure if amai is allowed to flee -ver_flee_multiple2 2 Multiplier to players strength at highest aggression to measure if amai allowed to flee -ver_flee_multiple3 3 Multipler to players strength at highest aggression to measure if amai will flee -ver_low_aggression -15 Aggression below this uses the lowest strength flee multiplier -ver_high_aggression 45 Agression above this uses the highest strength flee multiplier +Variable Setting Value Comment +sleep_multiplier 1 increases performance by checking stuff not so often +slm_start 6 how many computer players is needed tor the sleep multiplier to start increasing. +slm_end 18 how many computer players is needed tor the sleep multiplier to stop increasing. +slm_start_mult 1 how much is the sleep multiplied when it's below the slm_start condition +slm_end_mult 2.9 how much is the sleep multiplied when it's above the slm_end condition +hero_radius 200 scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move +use_linear_upkeep_saving false should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border? +repair_threshold 6 computers only repair buildings if they have more than this many workers +repair_threshold_threatened 8 computers only repair buildings when the town is under attack if they got more than this many workers +max_follow_dist 1000 Distance behind the army a zeppelin follows +neutral_hero_time 26 when is neutral heroes available in seconds /5 +buy_distance 350 how close to a shop do a unit have to be for buying? +buy_timeout_large 120 time in seconds the hero goes to a shop before it gives up if it haven't reached it +buy_timeout_small 3 time in seconds a hero tries to buy items at shop before giving up +build_array_reset_time 100 every this * 5 seconds, the build array is reset +rp_strat_normal 250 normalizing strategy priorities added from strengths with this value +strategy_tier_bonus 22 the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy +attacking_strategy 4 strategy when attacking enemy players +focus_fire_limit 35 if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero +focus_fire_ranged_dist 600 Distance from ranged units enemy units can be targeted with focus fire +focus_fire_melee_dist 333 Distance from melee units enemy units can be targeted with focus fire +flee_health_percentage 0.30 Units flee from battle if the health goes below his % value(0.25 is 25%) +flee_minimum_health 100 Units flee from battle if the health goes below this +statue_distance 300 how near the units a statue used by undead should be in the fights +teleport_radius 800 units will stay within this radius from a hero that is using town portal +gold_exchange_level 650 computers give extra gold above this value to other computers on the same team in need of gold +wood_exchange_level 350 computers give extra lumber above this value to other computers on the same team in need of lumber +max_towns 5 how many towns is a computer allowed to have? +add_tag true Add the [AMAI] tag in front of name +add_skill true Add the current skill after the name +max_harass_groups 10 how many different harass groups you can use +attacking_aggression 2 the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5 +expansion_radius 1250 the radius araound a mine computers check for creeps before expanding there +harass_radius_attack_ranged 800 how far away from ranged enemy units harassing units attack a inferior enemy unit +harass_radius_attack_melee 400 how far away from melee enemy units harassing units attack a inferior enemy unit +harass_radius_flee_ranged 1500 how far away from ranged enemy units harassing units turn and flee +harass_radius_flee_melee 800 how far away from melee enemy units harassing units turn and flee +chatting true computers use chat taunts +full_threat_distance 1000 a enemy army within this distance is counted as a full threat +no_threat_distance 2000 a enemy army outside this distance is counted as no threat +distance_threat_exponent 0.8 how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance +distance_threat_mult 540 how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town +atl_time_start 300 accepted threat level increase starts at this time +atl_time_end 900 and ends at that time +atl_time_start_val 10 it starts with this value +atl_time_end_val 20 and ends with that value +atl_enemy_start 1 accepted threat level multiplier increases at that enemy number +atl_enemy_end 4 until that enemy number +atl_enemy_start_mult 1 the multiplier starts for accepted threat level starts with this +atl_enemy_end_mult 1.5 and ends with this +teleport_low_threat 50 Army uses TP to get home and defend if a threat is greater than this +teleport_high_threat 100 Army uses TP to get home and defend if a threat is greater than this +teleport_low_threat_distance 4000 Army won't use TP home if they are closer to base than this and a low threat level appears +teleport_high_threat_distance 2300 Army won't use TP home if they are closer to base than this and a high threat level appears +teleport_army_min_strength 20 how big the army need to be for use of TP to threatened town +teleport_min_threat 50 minimum threat level TP use is allowed on +shredder_peon_count 12 how many peons does a goblin shredder replace in lumber harvesting +minimum_peon_wood 2000 computers don't build any workers for lumber harvesting if they have more lumber than this +maximum_peon_wood 200 computers build all needed workers for lumber harvesting if they have lumber lower than this +ver_neutral_heroes_available true does the version have neutral heroes ? +ver_neutral_hero_number 8 how many neutral heroes ? +ver_only_heroes_buy false can only heroes buy stuff ? +ver_food_limit GetPlayerState(ai_player, PLAYER_STATE_FOOD_CAP_CEILING) what is the versions food limit ? +normal_battle_radius 1500 units within that radius are considered belonging to the current battle +creep_battle_radius 750 same as with normal_battle_radius, but for battles against creeps +expansion_taken_radius 1300 how near a mine a enemy building must be to make amai recognize it as taken +ver_hero_base_value 2 what is the base strength of a hero (the level number is added to get the actual strength) ? +ver_hero_ultimate_level 6 at what level do the heroes get their ultimates ? +ver_hero_ultimate_value 3 how much extra strength does the ultimate give to the hero ? +ver_creeps_attack_buildings_dist 1850 how far away do creeps attack buildings ? +ver_mercs_night_buy false can mercs be bought at night without waking up creeps ? +ver_tower_check_radius 2000 check for towers in this radius around a target +ver_harass_tower_check_radius 2200 check for towers in this radius during harassing +ver_strat_change_enemy_strength_min 25 don't allow strategy change unless the maximum strength of all enemy players in the game is above this. +destroy_buildings_on_defeat false Should the buildings of the AI be destroyed on defeat or given to neutral player ? +attack_reform_length 10 reform the attack group (getting new units) every that time on an attack (in seconds / 2) +front_base_distance difficulty * 50 + front_base_distance the distance of the front locations from the start location +ver_heroes true Does this version have heroes? +fixedcomputername false Enable to force computers to have there fixed name instead of a profile name +green_creep_camp_strength_bonus 0 Bonus strength added to minor creep camps +orange_creep_camp_strength_bonus 2 Bonus strength added to mediocre creep camps +red_creep_camp_strength_bonus 4 Bonus strength added to major creep camps +debugging false Can turn on for debugging mode to display debug type messages +strategy_change_threshold 1.05 New strategy priority must be larger than this multiple to the current strategy +disable_surrender false Set to true to stop amai from giving up early when it detects its going to lose +major_hero_skill_value 60 Priority to choose the first line of hero skills +minor_hero_skill_value 30 Priority to choose the second line of hero skills +rare_hero_skill_value 10 Priority to choose the third line of hero skills +fav_hero_add 20 priority added to heroes to be picked if they are favorites of the used profile +ver_optimal_gold 5 The optimal number of peons that should be harvesting gold +ver_flee_multiple1 1 Multiplier to players strength at lowest aggression to measure if amai is allowed to flee +ver_flee_multiple2 2 Multiplier to players strength at highest aggression to measure if amai allowed to flee +ver_flee_multiple3 3 Multipler to players strength at highest aggression to measure if amai will flee +ver_low_aggression -15 Aggression below this uses the lowest strength flee multiplier +ver_high_aggression 45 Agression above this uses the highest strength flee multiplier From 59da2787eb3643df70954e2ea774d46c13a41387 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 9 Feb 2025 00:34:29 +0800 Subject: [PATCH 06/42] Add files via upload --- AMAIStrategyManager.pl | 304 +++++++++++---------- Languages/Chinese/StrategyManager.txt | 277 ++++++++++++++++++- Languages/Deutsch/StrategyManager.txt | 273 ++++++++++++++++++- Languages/English/StrategyManager.txt | 273 ++++++++++++++++++- Languages/French/StrategyManager.txt | 273 ++++++++++++++++++- Languages/Norwegian/StrategyManager.txt | 273 ++++++++++++++++++- Languages/Portuguese/StrategyManager.txt | 273 ++++++++++++++++++- Languages/Romanian/StrategyManager.txt | 273 ++++++++++++++++++- Languages/Russian/StrategyManager.txt | 273 ++++++++++++++++++- Languages/Spanish/StrategyManager.txt | 273 ++++++++++++++++++- Languages/Swedish/StrategyManager.txt | 273 ++++++++++++++++++- REFORGED/Elf/Settings.txt | 172 ++++++------ REFORGED/Human/Settings.txt | 172 ++++++------ REFORGED/Orc/Settings.txt | 173 ++++++------ REFORGED/Undead/Settings.txt | 172 ++++++------ ROC/Elf/Settings.txt | 167 ++++++------ ROC/Human/Settings.txt | 167 ++++++------ ROC/Orc/Settings.txt | 162 ++++++------ ROC/Undead/Settings.txt | 166 ++++++------ TFT/Elf/Settings.txt | 172 ++++++------ TFT/Human/Settings.txt | 172 ++++++------ TFT/Orc/Settings.txt | 173 ++++++------ TFT/Undead/Settings.txt | 172 ++++++------ Templates/StrategyManager.txt | 324 +++++++++++++++++++++++ 24 files changed, 4293 insertions(+), 1109 deletions(-) create mode 100644 Templates/StrategyManager.txt diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index e6b490475..8e6294bfb 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -5,7 +5,6 @@ use Tk::TextUndo; use Tk::Table; use Tk::NoteBook; -use open ':std', ':encoding(UTF-8)'; BEGIN{ if($^O eq 'MSWin32'){ @@ -22,7 +21,11 @@ BEGIN my %lang_data_cache; my $lang_code_file_path = 'Manager_language.txt'; -open(my $fh_lang_code, '<', $lang_code_file_path) or die "Cannot open language code file: $!"; +open(my $fh_lang_code, '<', $lang_code_file_path) or do { + open(my $fh_new, '>', $lang_code_file_path); + print $fh_new "English\n"; + close($fh_new); +}; my $lang_code = <$fh_lang_code>; chomp($lang_code); close($fh_lang_code); @@ -31,38 +34,38 @@ BEGIN my %languages; sub load_language { - my ($lang_file) = @_; - return $lang_data_cache{$lang_file} if exists $lang_data_cache{$lang_file}; - open my $fh, '<:encoding(UTF-8)', $lang_file or die "Cannot open language file '$lang_file': $!"; - my %keylang; - while (<$fh>) { - chomp; - next if /^\s*(?:#.*)?$/; - my ($key, $value) = split '=', $_, 2; - unless (defined $key && defined $value) { - warn "Invalid line format in language file at line $.: $_"; - next; - } - # $key =~ s/^\s+|\s+$//g; - # $value =~ s/^\s+|\s+$//g; - $keylang{$key} = $value; + my ($lang_file) = @_; + return $lang_data_cache{$lang_file} if exists $lang_data_cache{$lang_file}; + open my $fh, '<:encoding(UTF-8)', $lang_file or die "Cannot open language file '$lang_file': $!"; + my %keylang; + while (<$fh>) { + chomp; + next if /^\s*(?:#.*)?$/; + my ($key, $value) = split '=', $_, 2; + unless (defined $key && defined $value) { + warn "Invalid line format in language file at line $.: $_"; + next; } - close $fh; - $lang_data_cache{$lang_file} = \%keylang; - return \%keylang; + # $key =~ s/^\s+|\s+$//g; + # $value =~ s/^\s+|\s+$//g; + $keylang{$key} = $value; + } + close $fh; + $lang_data_cache{$lang_file} = \%keylang; + return \%keylang; } sub get_translation { - my ($key, @args) = @_; - my $lang_ref = load_language($lang_file); - if (exists $lang_ref->{$key} && $lang_ref->{$key} !~ /^\s*$/) { - return sprintf($lang_ref->{$key}, @args); - } - $lang_ref = load_language($back_lang_file); - if (exists $lang_ref->{$key} && $lang_ref->{$key} !~ /^\s*$/) { - return sprintf($lang_ref->{$key}, @args); - } - return "$key(" . join(", ", @args) . ")"; + my ($key, @args) = @_; + my $lang_ref = load_language($lang_file); + if (exists $lang_ref->{$key} && $lang_ref->{$key} !~ /^\s*$/) { + return sprintf($lang_ref->{$key}, @args); + } + $lang_ref = load_language($back_lang_file); + if (exists $lang_ref->{$key} && $lang_ref->{$key} !~ /^\s*$/) { + return sprintf($lang_ref->{$key}, @args); + } + return join(@args) . " $key" ; } my $main = MainWindow->new(-title => get_translation('title_strategy_manager')); @@ -90,6 +93,16 @@ sub get_translation { -height => 0, )->pack(-fill => 'both', -expand => 1); tie $profile, "Tk::Listbox", $profilelb; +sub confirm_box { + my ($message) = @_; + $main->messageBox( + -message => $message, + -title => get_translation('title_really'), + -type => 'OK', + -default => 'OK', + ); + return; +} my $bframe = $rframe->Frame->pack(-side => 'right'); $bframe->Label( @@ -111,90 +124,90 @@ sub get_translation { }, -width => 16)->pack; $bframe->Button( - -text => get_translation('button_extract'), + -text => get_translation('button_copy'), -command => sub { if ($notebook->raised eq 'strat') { - ExtractStrat($main, $ver, $race, $strat) + CopyStrat($ver, $race, $strat); + UpdateStratList($stratlb, $ver, $race) } else { - ExtractProfile($main, $ver, $profile) + CopyProfile($ver, $profile); + UpdateProfileList($profilelb, $ver) } }, -width => 16)->pack; $bframe->Button( - -text => get_translation('button_insert'), + -text => get_translation('button_edit'), -command => sub { if ($notebook->raised eq 'strat') { - InsertStrat($main, $ver, $race); - UpdateStratList($stratlb, $ver, $race) + EditStrat($main, $ver, $race, $strat) } else { - InsertProfile($main, $ver); - UpdateProfileList($profilelb, $ver) + EditProfile($main, $ver, $profile) } }, -width => 16)->pack; $bframe->Button( - -text => get_translation('button_copy'), + -text => get_translation('button_lock'), -command => sub { if ($notebook->raised eq 'strat') { - CopyStrat($ver, $race, $strat); - UpdateStratList($stratlb, $ver, $race) + SetRaceOption($ver, $race, 'debug_strategy', "STRAT_$strat->[0]") } else { - CopyProfile($ver, $profile); - UpdateProfileList($profilelb, $ver) + SetVerOption($ver, 'debug_profile', GetArrayIndex($profile, $profilelb->get(0, 'end'))) } }, -width => 16)->pack; $bframe->Button( - -text => get_translation('button_remove'), + -text => get_translation('button_unlock'), -command => sub { if ($notebook->raised eq 'strat') { - RemoveStrat($main, $ver, $race, $strat); - UpdateStratList($stratlb, $ver, $race) + SetRaceOption($ver, $race, 'debug_strategy', -1) } else { - RemoveProfile($main, $ver, $profile); - UpdateProfileList($profilelb, $ver) + SetVerOption($ver, 'debug_profile', -1) } }, -width => 16)->pack; $bframe->Button( - -text => get_translation('button_edit'), + -text => get_translation('button_extract'), -command => sub { if ($notebook->raised eq 'strat') { - EditStrat($main, $ver, $race, $strat) + ExtractStrat($main, $ver, $race, $strat) } else { - EditProfile($main, $ver, $profile) + ExtractProfile($main, $ver, $profile) } }, -width => 16)->pack; $bframe->Button( - -text => get_translation('button_lock'), + -text => get_translation('button_insert'), -command => sub { if ($notebook->raised eq 'strat') { - SetRaceOption($ver, $race, 'debug_strategy', "STRAT_$strat->[0]") + InsertStrat($main, $ver, $race); + UpdateStratList($stratlb, $ver, $race) } else { - SetVerOption($ver, 'debug_profile', GetArrayIndex($profile, $profilelb->get(0, 'end'))) + InsertProfile($main, $ver); + UpdateProfileList($profilelb, $ver) } }, -width => 16)->pack; $bframe->Button( - -text => get_translation('button_unlock'), + -text => get_translation('button_remove'), -command => sub { if ($notebook->raised eq 'strat') { - SetRaceOption($ver, $race, 'debug_strategy', -1) + RemoveStrat($main, $ver, $race, $strat); + UpdateStratList($stratlb, $ver, $race) } else { - SetVerOption($ver, 'debug_profile', -1) + RemoveProfile($main, $ver, $profile); + UpdateProfileList($profilelb, $ver) } }, -width => 16)->pack; -open(VERFILE, "Versions.txt") or die get_translation('err_file_not_found', ""); +open(VERFILE, "Versions.txt") or do { get_translation('err_file_not_found', "") }; my @vers = ; close(VERFILE); chomp foreach (@vers); @@ -277,7 +290,7 @@ sub get_translation { $langopt = $lframe->Optionmenu( -command => sub { my ($choice) = @_; - open(SETLANG, ">Manager_language.txt") or die get_translation('err_file_not_writing', ""); + open(SETLANG, ">Manager_language.txt") or do { get_translation('err_file_not_writing', "") }; print SETLANG $choice; close(SETLANG); exec($^X, $0, @ARGV); @@ -297,7 +310,7 @@ sub get_translation { MainLoop; sub GetLanguages { - open(LANG, "Languages.txt") or die get_translation('err_file_not_found', ""); + open(LANG, "Languages.txt") or do { get_translation('err_file_not_found', "") }; my @languages = ; close(LANG); shift @languages; @@ -311,7 +324,7 @@ sub GetLanguages { sub GetRaces { my $ver = shift; - open(RACEFILE, "$ver\\Races.txt") or die get_translation('err_file_not_found', "<$ver\\Races.txt>"); + open(RACEFILE, "$ver\\Races.txt") or do { get_translation('err_file_not_found', "<$ver\\Races.txt>") }; my @races = ; close(RACEFILE); chomp foreach (@races); @@ -335,7 +348,7 @@ sub GetArrayIndex { sub SetRaceOption { my ($ver, $race, $opt, $val) = @_; - open(SETFILE, "$ver\\$race\\Settings.txt") or die get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>"); + open(SETFILE, "$ver\\$race\\Settings.txt") or do { get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>") }; my @setfile = (); my $optionexists = 0; while() { @@ -349,14 +362,14 @@ sub SetRaceOption { } push @setfile, "$opt\t$val\t\n" if ($optionexists == 0); close(SETFILE); - open(SETFILE, ">$ver\\$race\\Settings.txt") or die get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>"); + open(SETFILE, ">$ver\\$race\\Settings.txt") or do { get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>") }; print SETFILE @setfile; close(SETFILE); } sub SetVerOption { my ($ver, $opt, $val) = @_; - open(SETFILE, "$ver\\GlobalSettings.txt") or die get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>"); + open(SETFILE, "$ver\\GlobalSettings.txt") or do { get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>") }; my @setfile = (); my $optionexists = 0; while() { @@ -370,7 +383,7 @@ sub SetVerOption { } push @setfile, "$opt\t$val\t\n" if ($optionexists == 0); close(SETFILE); - open(SETFILE, ">$ver\\GlobalSettings.txt") or die get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>"); + open(SETFILE, ">$ver\\GlobalSettings.txt") or do { get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>") }; print SETFILE @setfile; close(SETFILE); } @@ -379,7 +392,7 @@ sub GetStratList { my $ver = shift; my $race = shift; return () unless ($ver and $race); - open(STRATFILE, "$ver\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$ver\\$race\\Strategy.txt>"); + open(STRATFILE, "$ver\\$race\\Strategy.txt") or do { get_translation('err_file_not_found', "<$ver\\$race\\Strategy.txt>") }; my @stratlist = (); ; while () { @@ -402,7 +415,7 @@ sub UpdateStratList { sub GetProfileList { my $ver = shift; return () unless ($ver); - open(PROFILEFILE, "$ver\\Profiles.txt") or die get_translation('err_file_not_found', "<$ver\\Profiles.txt>"); + open(PROFILEFILE, "$ver\\Profiles.txt") or do { get_translation('err_file_not_found', "<$ver\\Profiles.txt>") }; my @profilelist = (); ; while () { @@ -426,7 +439,7 @@ sub RemoveStrat { my $response = $main->messageBox(-message => get_translation('message_remove_strategy'), -title => get_translation('title_really'), -type => 'YesNo', -default => 'no'); return if ($response eq 'no' or $response eq 'No'); my $stratname = @$strat[0]; - open(STRATFILE, "$version\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>"); + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>") }; my @stratfile = (); while () { unless (/^$stratname\t/) { @@ -434,23 +447,23 @@ sub RemoveStrat { } } close(STRATFILE); - open(STRATFILE, ">$version\\$race\\Strategy.txt") or die get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>"); + open(STRATFILE, ">$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>") }; print STRATFILE @stratfile; close(STRATFILE); @stratfile = (); - open(AIFILE, "$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>"); + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>") }; my @aifile = (); while () { if (/\bfunction\s*init_strategy_$stratname\b/) { - while (( or die get_translation('err_strategy_not_complete')) !~ /endfunction/) {} - while (( or die get_translation('err_strategy_not_complete')) !~ /endfunction/) {} + while (( or do { get_translation('err_strategy_not_complete') }) !~ /endfunction/) {} + while (( or do { get_translation('err_strategy_not_complete') }) !~ /endfunction/) {} } else { push(@aifile, $_); } } close(AIFILE); - open(AIFILE, ">$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>"); + open(AIFILE, ">$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>") }; print AIFILE @aifile; close(AIFILE); } @@ -461,7 +474,7 @@ sub RemoveProfile { my $response = $main->messageBox(-message => get_translation('message_remove_profile'), -title => get_translation('title_really'), -type => 'YesNo', -default => 'no'); return if ($response eq 'no' or $response eq 'No'); my $profilename = @$profile[0]; - open(PROFILEFILE, "$version\\Profiles.txt") or die get_translation('err_file_not_found', "<$version\\Profiles.txt>"); + open(PROFILEFILE, "$version\\Profiles.txt") or do { get_translation('err_file_not_found', "<$version\\Profiles.txt>") }; my @profilefile = (); while () { unless (/^$profilename\t/) { @@ -469,7 +482,7 @@ sub RemoveProfile { } } close(PROFILEFILE); - open(PROFILEFILE, ">$version\\Profiles.txt") or die get_translation('err_file_not_writing', "<$version\\Profiles.txt>"); + open(PROFILEFILE, ">$version\\Profiles.txt") or do { get_translation('err_file_not_writing', "<$version\\Profiles.txt>") }; print PROFILEFILE @profilefile; close(PROFILEFILE); } @@ -494,18 +507,18 @@ sub CopyProfile { sub ExtractStratSub { my ($filename, $version, $race, $stratname) = @_; - open(AIFILE, "$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>"); - open(STRATFILE, "$version\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>"); - open(TARGETFILE, ">$filename") or die get_translation('err_file_not_found', "<$filename>"); + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>") }; + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>") }; + open(TARGETFILE, ">$filename") or do { get_translation('err_file_not_found', "<$filename>") }; print TARGETFILE "#AMAI 2.0 Strategy\n"; my $line = ; - while (($line = ( or die get_translation('err_strategy_not_found_s'))) !~ /^$stratname\t/) {} + while (($line = ( or do { get_translation('err_strategy_not_found_s') })) !~ /^$stratname\t/) {} print TARGETFILE $line; - while (($line = ( or die get_translation('err_strategy_not_found_b'))) !~ /\bfunction\s*init_strategy_$stratname\b/) {} + while (($line = ( or do { get_translation('err_strategy_not_found_b') })) !~ /\bfunction\s*init_strategy_$stratname\b/) {} print TARGETFILE $line; - while (($line = ( or die get_translation('err_strategy_not_complete'))) !~ /endfunction/) {print TARGETFILE $line;} + while (($line = ( or do { get_translation('err_strategy_not_complete') })) !~ /endfunction/) {print TARGETFILE $line;} print TARGETFILE $line; - while (($line = ( or die get_translation('err_strategy_not_complete'))) !~ /endfunction/) {print TARGETFILE $line;} + while (($line = ( or do { get_translation('err_strategy_not_complete') })) !~ /endfunction/) {print TARGETFILE $line;} print TARGETFILE $line; close(TARGETFILE); close(AIFILE); @@ -527,11 +540,11 @@ sub ExtractStrat { sub ExtractProfileSub { my ($filename, $version, $profilename) = @_; - open(PROFILEFILE, "$version\\Profiles.txt") or die get_translation('err_file_not_found', "<$version\\Profiles.txt>"); - open(TARGETFILE, ">$filename") or die get_translation('err_file_not_found', "<$filename>"); + open(PROFILEFILE, "$version\\Profiles.txt") or do { get_translation('err_file_not_found', "<$version\\Profiles.txt>") }; + open(TARGETFILE, ">$filename") or do { get_translation('err_file_not_found', "<$filename>") }; print TARGETFILE "#AMAI 2.0 Profile\n"; my $line = ; - while (($line = ( or die get_translation('err_profile_not_found_p'))) !~ /^$profilename\t/) {} + while (($line = ( or do { get_translation('err_profile_not_found_p') })) !~ /^$profilename\t/) {} print TARGETFILE $line; close(TARGETFILE); close(PROFILEFILE); @@ -553,9 +566,9 @@ sub ExtractProfile { sub InsertStratSub { my ($filename, $version, $race) = @_; my $stratlist = join ',', GetStratList($version, $race); - open(SOURCE, $filename) or die get_translation('err_file_not_found', "<$filename>"); - open(AIFILE, ">>$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>"); - open(STRATFILE, ">>$version\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>"); + open(SOURCE, $filename) or do { get_translation('err_file_not_found', "<$filename>") }; + open(AIFILE, ">>$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>") }; + open(STRATFILE, ">>$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>")) }; my $line = ; if ($line !~ /#AMAI 2.0 Strategy/) {die get_translation('err_not_file_s');} $line = ; @@ -594,10 +607,10 @@ sub InsertStrat { sub InsertProfileSub { my ($filename, $version) = @_; my $profilelist = join ',', GetProfileList($version); - open(SOURCE, $filename) or die get_translation('err_file_not_found', "<$filename>"); - open(PROFILEFILE, ">>$version\\Profiles.txt") or die get_translation('err_file_not_found', "<$version\\Profiles.txt>"); + open(SOURCE, $filename) or do { get_translation('err_file_not_found', "<$filename>") }; + open(PROFILEFILE, ">>$version\\Profiles.txt") or do { get_translation('err_file_not_found', "<$version\\Profiles.txt>") }; my $line = ; - if ($line !~ /#AMAI 2.0 Profile/) {die get_translation('err_not_file_p');} + if ($line !~ /#AMAI 2.0 Profile/) {die get_translation('err_not_file_p') }; $line = ; $line =~ /^([^\t]*)\t/; my $oldprofilename = $1; @@ -633,7 +646,7 @@ sub EditStrat { my $rframe = $edit->Frame->pack(-side => 'right'); my $bframe = $rframe->Frame->pack(-side => 'right'); my $strattable = $rframe->Table(-rows => 37)->pack(-side => 'left'); - open(TIERFILE, "$ver\\$race\\Tiers.txt") or die get_translation('err_file_not_found', "<$ver\\$race\\Tiers.txt>"); + open(TIERFILE, "$ver\\$race\\Tiers.txt") or do { get_translation('err_file_not_found', "<$ver\\$race\\Tiers.txt>") }; my @tiers = ; my $tiernum = @tiers; close(TIERFILE); @@ -648,13 +661,13 @@ sub EditStrat { my $optarrayref = FillTable($strattable, $version, $race, @$strat[0]); FillTexts($inittext, \@buildtexttier, $version, $race, @$strat[0]); $bframe->Button( - -text => get_translation('button_ok'), - -command => sub {SaveStrat($edit, $inittext, \@buildtexttier, $strattable, $version, $race, @$strat[0], $optarrayref)}, - -width => 14)->pack; + -text => get_translation('button_ok'), + -command => sub {SaveStrat($edit, $inittext, \@buildtexttier, $strattable, $version, $race, @$strat[0], $optarrayref)}, + -width => 14)->pack; $bframe->Button( - -text => get_translation('button_cancel'), - -command => [$edit => 'destroy'], - -width => 14)->pack; + -text => get_translation('button_cancel'), + -command => [$edit => 'destroy'], + -width => 14)->pack; $edit->focusForce; } @@ -678,7 +691,7 @@ sub EditProfile { sub GetVarList { my ($ver, $var, $race) = @_; - open(VARFILE, "VarDefs.ini") or die get_translation('err_file_not_found', ""); + open(VARFILE, "VarDefs.ini") or do { get_translation('err_file_not_found', "") }; ; while() { chomp; @@ -686,7 +699,7 @@ sub GetVarList { my $fn = $1; $fn =~ s/\$RACE\$/$race/g; close(VARFILE); - open(VARTABLE, "$ver\\$fn") or die get_translation('err_file_not_found', "<$ver\\$fn>"); + open(VARTABLE, "$ver\\$fn") or do { get_translation('err_file_not_found', "<$ver\\$fn>") }; my @vt = (); while () { /([^\t\n]*)(\t|\n|$)/; @@ -747,7 +760,7 @@ sub ExtendOptList { sub GetOptList { my $ver = shift; - open(OPTFILE, "Optionlist.ini") or die get_translation('err_file_not_found', ""); + open(OPTFILE, "Optionlist.ini") or do { get_translation('err_file_not_found', "") }; my %optlist = (); my @optfile = ; close(OPTFILE); @@ -777,7 +790,7 @@ sub GetUnitLists { my @buildinglist = (0); my @upgradelist = (0); my @herolist = (0); - open(UNITFILE, "$version\\StandardUnits.txt") or die get_translation('err_file_not_found', "<$version\\StandardUnits.txt>"); + open(UNITFILE, "$version\\StandardUnits.txt") or do { get_translation('err_file_not_found', "<$version\\StandardUnits.txt>") }; while() { my @line = split("\t", $_); push @buildinglist, $line[0] if ($line[2] =~ /$race/ and $line[4] eq "BUILDING"); @@ -799,7 +812,7 @@ sub GetProfileUnitLists { $unitlists{$_} = \@unitlist; $herolists{$_} = \@herolist; } - open(UNITFILE, "$version\\StandardUnits.txt") or die get_translation('err_file_not_found', "<$version\\StandardUnits.txt>"); + open(UNITFILE, "$version\\StandardUnits.txt") or do { get_translation('err_file_not_found', "<$version\\StandardUnits.txt>") }; while() { my @line = split("\t", $_); foreach (@races) { @@ -820,18 +833,18 @@ sub FillTable { my @buildinglist = @{$buildinglistref}; my @upgradelist = @{$upgradelistref}; my @herolist = @{$herolistref}; - open(STRATFILE, "$version\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>"); + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>") }; my $line = ; chomp($line); my @opt = split("\t", $line); my $l; my $i = 0; foreach my $v (@opt) { - $l = $strattable->Label(-text => $v); + $l = $strattable->Label(-text => get_translation($v), -anchor => 'e'); $strattable->put($i, 0, $l); $i++; } - while (($line = ( or die get_translation('err_strategy_not_found_s'))) !~ /^$strat\t/) {} + while (($line = ( or do { get_translation('err_strategy_not_found_s') })) !~ /^$strat\t/) {} chomp($line); my @optval = split("\t", $line); $i = 0; @@ -853,7 +866,7 @@ sub FillTable { } elsif ($optvalarray[0] eq 'hero') { OptionmenuAddOptions($l, $v, @herolist); - } + } else { OptionmenuAddOptions($l, $v, @upgradelist); } @@ -876,18 +889,18 @@ sub FillProfileTable { my ($unitlistref, $herolistref) = GetProfileUnitLists($version, GetRaces($version), 'NEUTRAL'); my %unitlists = %{$unitlistref}; my %herolists = %{$herolistref}; - open(PROFILEFILE, "$version\\Profiles.txt") or die get_translation('err_file_not_found', "<$version\\Profiles.txt>"); + open(PROFILEFILE, "$version\\Profiles.txt") or do { get_translation('err_file_not_found', "<$version\\Profiles.txt>") }; my $line = ; chomp($line); my @opt = split("\t", $line); my $l; my $i = 0; foreach my $v (@opt) { - $l = $profiletable->Label(-text => $v); + $l = $profiletable->Label(-text => get_translation($v), -anchor => 'e'); $profiletable->put($i, 0, $l); $i++; } - while (($line = ( or die get_translation('err_profile_not_found_p'))) !~ /^$profile\t/) {} + while (($line = ( or do { get_translation('err_profile_not_found_p') })) !~ /^$profile\t/) {} chomp($line); my @optval = split("\t", $line); $i = 0; @@ -936,24 +949,24 @@ sub AssembleTable { sub FillTexts { my ($inittext, $buildtexttierref, $version, $race, $stratname, @optarray) = @_; my @buildtexttier = @{$buildtexttierref}; - open(AIFILE, "$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>"); + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>") }; my $line; - while (( or die get_translation('err_strategy_not_found_ai')) !~ /\bfunction\s*init_strategy_$stratname\b/) {} - while (($line = ( or die get_translation('err_strategy_not_found_ai'))) !~ /endfunction/) {$inittext->insert('end', $line);} - while (( or die get_translation('err_strategy_not_found_ai')) !~ /\bfunction\s*build_sequence_$stratname\b/) {} - while (( or die get_translation('err_strategy_not_found_ai')) !~ /if.*tier.*==.*$#buildtexttier/) {} + while (( or do { get_translation('err_strategy_not_found_ai') }) !~ /\bfunction\s*init_strategy_$stratname\b/) {} + while (($line = ( or do { get_translation('err_strategy_not_found_ai') })) !~ /endfunction/) {$inittext->insert('end', $line);} + while (( or do { get_translation('err_strategy_not_found_ai') }) !~ /\bfunction\s*build_sequence_$stratname\b/) {} + while (( or do { get_translation('err_strategy_not_found_ai') }) !~ /if.*tier.*==.*$#buildtexttier/) {} for(my $i=$#buildtexttier;$i>2;$i--) { my $j = $i-1; - while (($line = ( or die get_translation('err_strategy_not_found_ai'))) !~ /elseif.*tier.*==.*$j/) {$buildtexttier[$i]->insert('end', $line);} + while (($line = ( or do { get_translation('err_strategy_not_found_ai') })) !~ /elseif.*tier.*==.*$j/) {$buildtexttier[$i]->insert('end', $line);} } my $iflevel = 0; - while ((($line = ( or die get_translation('err_strategy_not_found_ai'))) !~ /\belse\b/) or $iflevel != 0) { + while ((($line = ( or do { get_translation('err_strategy_not_found_ai') })) !~ /\belse\b/) or $iflevel != 0) { $buildtexttier[2]->insert('end', $line); $iflevel++ if ($line =~ /\bif/); $iflevel-- if ($line =~ /endif/); } $iflevel = 0; - while ((($line = ( or die get_translation('err_strategy_not_found_ai'))) !~ /endif/) or $iflevel != 0) { + while ((($line = ( or do { get_translation('err_strategy_not_found_ai') })) !~ /endif/) or $iflevel != 0) { $buildtexttier[1]->insert('end', $line); $iflevel++ if ($line =~ /\bif/); $iflevel-- if ($line =~ /endif/); @@ -965,7 +978,7 @@ sub SaveStrat { my ($edit, $inittext, $buildtexttierref, $strattable, $version, $race, $stratname, $optarrayref) = @_; my @buildtexttier = @{$buildtexttierref}; my $newstratname = $strattable->get(0,1)->get; - open(STRATFILE, "$version\\$race\\Strategy.txt") or die get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>"); + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>") }; my @stratfile = (); while () { if (/^$stratname\t/) { @@ -977,16 +990,16 @@ sub SaveStrat { } } close(STRATFILE); - open(STRATFILE, ">$version\\$race\\Strategy.txt") or die get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>"); + open(STRATFILE, ">$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>") }; print STRATFILE @stratfile; close(STRATFILE); @stratfile = (); - open(AIFILE, "$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>"); + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>") }; my @aifile = (); while () { if (/\bfunction\s*init_strategy_$stratname\b/) { - while (( or die get_translation('err_strategy_not_complete')) !~ /endfunction/) {} - while (( or die get_translation('err_strategy_not_complete')) !~ /endfunction/) {} + while (( or do { get_translation('err_strategy_not_complete') }) !~ /endfunction/) {} + while (( or do { get_translation('err_strategy_not_complete') }) !~ /endfunction/) {} push(@aifile, "function init_strategy_$newstratname takes nothing returns nothing\n"); push(@aifile, $inittext->get('1.0', 'end')); push(@aifile, "endfunction\n"); @@ -1008,7 +1021,7 @@ sub SaveStrat { } } close(AIFILE); - open(AIFILE, ">$version\\$race\\BuildSequence.ai") or die get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>"); + open(AIFILE, ">$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>") }; print AIFILE @aifile; close(AIFILE); $edit->destroy; @@ -1017,7 +1030,7 @@ sub SaveStrat { sub SaveProfile { my ($edit, $profiletable, $version, $profilename, $optarrayref) = @_; my $newprofilename = $profiletable->get(0,1)->get; - open(PROFILEFILE, "$version\\Profiles.txt") or die get_translation('err_file_not_found', "<$version\\Profiles.txt>"); + open(PROFILEFILE, "$version\\Profiles.txt") or do { get_translation('err_file_not_found', "<$version\\Profiles.txt>") }; my @profilefile = (); while () { if (/^$profilename\t/) { @@ -1029,7 +1042,7 @@ sub SaveProfile { } } close(PROFILEFILE); - open(PROFILEFILE, ">$version\\Profiles.txt") or die get_translation('err_file_not_writing', "<$version\\Profiles.txt>"); + open(PROFILEFILE, ">$version\\Profiles.txt") or do { get_translation('err_file_not_writing', "<$version\\Profiles.txt>") }; print PROFILEFILE @profilefile; close(PROFILEFILE); $edit->destroy; @@ -1059,23 +1072,23 @@ sub EditRacialBuilds { sub LoadRacialBuild { my ($inittext, $buildtext, $ver, $race) = @_; - open(AIFILE, "$ver\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>"); + open(AIFILE, "$ver\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>") }; my $line; - while (( or die get_translation('err_strategy_init_not_set')) !~ /function global_init_strategy/) {} - while (($line = ( or die get_translation('err_strategy_init_not_complete'))) !~ /endfunction/) {$inittext->insert('end', $line);} - while (( or die get_translation('err_strategy_build_set')) !~ /function global_build_sequence/) {} - while (($line = ( or die get_translation('err_strategy_build_complete'))) !~ /endfunction/) {$buildtext->insert('end', $line);} + while (( or do { get_translation('err_strategy_init_not_set') }) !~ /function global_init_strategy/) {} + while (($line = ( or do { get_translation('err_strategy_init_not_complete') })) !~ /endfunction/) {$inittext->insert('end', $line);} + while (( or do { get_translation('err_strategy_build_set') }) !~ /function global_build_sequence/) {} + while (($line = ( or do { get_translation('err_strategy_build_complete') })) !~ /endfunction/) {$buildtext->insert('end', $line);} close(AIFILE); } sub SaveRacialBuild { my ($edit, $inittext, $buildtext, $ver, $race) = @_; - open(AIFILE, "$ver\\$race\\BuildSequence.ai") or die get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>"); + open(AIFILE, "$ver\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>") }; my @aifile = (); while () { if (/\bfunction\s*global_init_strategy\b/) { - while (( or die get_translation('err_global_build_set')) !~ /endfunction/) {} - while (( or die get_translation('err_global_build_set')) !~ /endfunction/) {} + while (( or do { get_translation('err_global_build_set') }) !~ /endfunction/) {} + while (( or do { get_translation('err_global_build_set') }) !~ /endfunction/) {} push(@aifile, "function global_init_strategy takes nothing returns nothing\n"); push(@aifile, $inittext->get('1.0', 'end')); push(@aifile, "endfunction\n"); @@ -1088,7 +1101,7 @@ sub SaveRacialBuild { } } close(AIFILE); - open(AIFILE, ">$ver\\$race\\BuildSequence.ai") or die get_translation('err_file_not_writing', "<$ver\\$race\\BuildSequence.ai>"); + open(AIFILE, ">$ver\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_writing', "<$ver\\$race\\BuildSequence.ai>") }; print AIFILE @aifile; close(AIFILE); $edit->destroy; @@ -1114,19 +1127,20 @@ sub EditSettings { sub LoadSettings { my ($table, $file) = @_; - open(SETTINGS, $file) or die get_translation('err_file_not_found', "<$file>"); + open(SETTINGS, $file) or do { get_translation('err_file_not_found', "<$file>") }; ; my $i = 0; while() { chomp; - my @setting = split "\t", $_; - my $l = $table->Label(-text => $setting[0]); - $table->put($i, 0, $l); - $l = $table->Entry(-width => 25); - $l->insert('end', $setting[1]); - $table->put($i, 1, $l); - $l = $table->Label(-text => $setting[2]); - $table->put($i, 2, $l); + my ($option, $value, $description) = split /\t/; + my $label_opt = $table->Label(-text => $option); + $table->put($i, 0, $label_opt); + my $entry_val = $table->Entry(-width => 25); + $entry_val->insert('end', $value); + $table->put($i, 1, $entry_val); + my $translated_desc = get_translation($description); + my $label_desc = $table->Label(-text => $translated_desc, -anchor => 'w'); + $table->put($i, 2, $label_desc); $i++; } close(SETTINGS); @@ -1135,7 +1149,7 @@ sub LoadSettings { sub SaveSettings { my ($edit, $table, $file, $rownumber) = @_; - open(SETTINGS, ">$file") or die get_translation('err_file_not_writing', "<$file>"); + open(SETTINGS, ">$file") or do { get_translation('err_file_not_writing', "<$file>") }; print SETTINGS "Variable Setting\tValue\tComment\n"; for(my $i=0;$i<$rownumber;$i++) { my $setting = $table->get($i, 0)->cget('-text'); diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt index 7a2a23e4d..7a536b948 100644 --- a/Languages/Chinese/StrategyManager.txt +++ b/Languages/Chinese/StrategyManager.txt @@ -28,8 +28,8 @@ label_Init_code=策略初始化设置 label_tier_code=%s 本基地训练/研究逻辑 label_racial_Init_code=全局限制 label_racial_build=全局训练/研究逻辑 -err_file_not_found=<%s> 文件丢失! -err_file_not_writing=<%s> 文件不能写入! +err_file_not_found=文件丢失: +err_file_not_writing=文件不能写入: err_strategy_not_found_a=AI文件中找不到策略 err_strategy_not_found=策略表中找不到策略 err_strategy_not_found_b=构筑表中找不到策略 @@ -50,4 +50,275 @@ title_strategy_manager=AMAI 策略管理器 title_profile_editor=AMAI 档案编辑器 title_strategy_editor=AMAI 策略编辑器 title_racial_builds_editor=AMAI 种族构筑编辑器 -title_settings_editor=AMAI 参数编辑器 \ No newline at end of file +title_settings_editor=AMAI 参数编辑器 + +increases performance by checking stuff not so often=睡眠倍率,增加可以提高性能 +how many computer players is needed tor the sleep multiplier to start increasing.=多少AI才能开始增加睡眠倍率? +how many computer players is needed tor the sleep multiplier to stop increasing.=多少AI才能停止增加睡眠倍率? +how much is the sleep multiplied when it's below the slm_start condition=未达到上述AI数量时,睡眠倍率是多少? +how much is the sleep multiplied when it's above the slm_end condition=超过上述AI数量时,睡眠倍率是多少? +scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move=扫描英雄周围多少距离来判定英雄是否被敌人包围或有被包围的危险,以便逃离? +should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?=AI是此时间内保持维修人口,还是在达到维护人口临界值时一次性保持? +computers only repair buildings if they have more than this many workers=仅当AI拥有超过此数量的工人时,才会修理建筑物? +computers only repair buildings when the town is under attack if they got more than this many workers=只有当基地受到攻击且AI拥有超过该数量工人时,才会修理建筑物? +Distance behind the army a zeppelin follows=飞艇跟随军队应保持多远距离? +when is neutral heroes available in seconds /5=中立英雄在多少秒后可用(时间需除以5) +how close to a shop do a unit have to be for buying?=需要离商店多近才可以购买单位或物品? +time in seconds the hero goes to a shop before it gives up if it haven't reached it=英雄在前往商店时,最多持续多久?超时仍未达到会放弃本次购买 +time in seconds a hero tries to buy items at shop before giving up=英雄在商店购买时,最久会停留多久(秒)?主要是无库存时兜底 +every this * 5 seconds, the build array is reset=构建数组重置周期,每隔此数值*5秒 +normalizing strategy priorities added from strengths with this value=此值用于规范在优势时添加战略的优先级 +the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy=如果AI的主城等级与特定策略相同,优先使用该策略的概率是多少? +strategy when attacking enemy players=攻击敌人的策略 +if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero=如果敌方英雄的生命值低于战斗中远程攻击者的总和乘以此值,AI会集火该英雄 +Distance from ranged units enemy units can be targeted with focus fire=远程单位集火距离 +Distance from melee units enemy units can be targeted with focus fire=近战单位集火距离 +Units flee from battle if the health goes below his % value(0.25 is 25%)=单位生命值低于百分之几(0.25 即 百分之25)时要逃离战场? +Units flee from battle if the health goes below this=单位生命值低于多少时要逃离战场? +how near the units a statue used by undead should be in the fights=不死族雕像在战斗时应该保持多远? +units will stay within this radius from a hero that is using town portal=使用回城卷轴时,回城英雄周围的单位应呆在多远? +computers give extra gold above this value to other computers on the same team in need of gold=AI将超出此值的额外黄金给予其他需要金币的AI盟友 +computers give extra lumber above this value to other computers on the same team in need of lumber=AI将超出此值的额外木材给予其他需要金币的AI盟友 +how many towns is a computer allowed to have?=AI最大该拥有几个基地??(以三种等级主城数量之和判断) +Add the [AMAI] tag in front of name=在AI名称前添加[AMAI]标签? +Add the current skill after the name=在AI名称后添加难度标签? +how many different harass groups you can use=AI可以使用的多个骚扰组? +the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5=AI基础侵略值,值越高越激进。建议范围:-5到5 +the radius araound a mine computers check for creeps before expanding there=AI在开矿之前检查金矿附近怪物的半径 +how far away from ranged enemy units harassing units attack a inferior enemy unit=骚扰组进攻劣等敌方单位时,要与远程敌方单位有多远距离? +how far away from melee enemy units harassing units attack a inferior enemy unit=骚扰组攻击劣等敌方单位时,要与近战敌方单位有多远距离? +how far away from ranged enemy units harassing units turn and flee=骚扰组在距离远程敌方单位多远时逃跑? +how far away from melee enemy units harassing units turn and flee=骚扰组在距离近战敌方单位多远时逃跑? +computers use chat taunts=AI聊天时会嘲讽? +a enemy army within this distance is counted as a full threat=多远距离内的敌军被视为完全威胁? +a enemy army outside this distance is counted as no threat=多远距离外的敌军不被视为威胁? +how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance=随着敌军从无威胁距离转为完全威胁距离,威胁增加的速度是多少? +how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town=当敌军接近时,对基地的威胁值增加多少?值越高威胁越大 +accepted threat level increase starts at this time=此值威胁级别开始增加 +and ends at that time=此值威胁级别结束增加 +it starts with this value=威胁级别初始值 +and ends with that value=威胁级别终值 +accepted threat level multiplier increases at that enemy number=威胁级别倍数在敌军数量达到该值时增加 +until that enemy number=威胁级别倍数在敌军数量达到该值时不再增加 +the multiplier starts for accepted threat level starts with this=威胁级别倍数初始值 +and ends with this=威胁级别倍数终值 +Army uses TP to get home and defend if a threat is greater than this=在威胁级别较低时,如果威胁级别大于此值,军队使用回城卷轴 +Army uses TP to get home and defend if a threat is greater than this=在威胁级别较高时,如果威胁级别大于此值,军队使用回城卷轴 +Army won't use TP home if they are closer to base than this and a low threat level appears=在威胁级别较低时,军队在离基地多近时不使用回城卷轴? +Army won't use TP home if they are closer to base than this and a high threat level appears=在威胁级别较高时,军队在离基地多近时不使用回城卷轴? +how big the army need to be for use of TP to threatened town=使用回城卷轴所需的军队规模 +minimum threat level TP use is allowed on=允许使用回城卷轴的最低威胁级别 +how many peons does a goblin shredder replace in lumber harvesting=一个伐木机的伐木效率相当于几个工人? +computers don't build any workers for lumber harvesting if they have more lumber than this=AI拥有多少木材后,不再在增加用于采伐木材的工人数量? +computers build all needed workers for lumber harvesting if they have lumber lower than this=AI拥有多少黄金后,不再在增加用于采伐木材的工人数量? +does the version have neutral heroes ?=该版本是否有中立英雄? +how many neutral heroes ?=有多少位中立英雄? +can only heroes buy stuff ?=只有英雄能买单位或物品吗? +what is the versions food limit ?=该版本的人口上限是多少? +units within that radius are considered belonging to the current battle=单位的常规仇恨距离是多少? +same as with normal_battle_radius, but for battles against creeps=野怪的仇恨距离是多少? +how near a mine a enemy building must be to make amai recognize it as taken=敌方建筑必须离矿点多近才能让AMAI识别为已被占领? +what is the base strength of a hero (the level number is added to get the actual strength) ?=英雄的基础强度是多少(实际强度为等级加上基础强度)? +at what level do the heroes get their ultimates ?=英雄在几级可以学大招? +how much extra strength does the ultimate give to the hero ?=大招会给英雄增加多少额外强度? +how far away do creeps attack buildings ?=野怪攻击建筑物的距离是多少? +can mercs be bought at night without waking up creeps ?=在晚上购买雇佣兵不会惊醒野怪? +check for towers in this radius around a target=在目标周围多少范围内检测塔? +check for towers in this radius during harassing=在骚扰期间,在多少范围内检测塔? +don't allow strategy change unless the maximum strength of all enemy players in the game is above this.=游戏中所有敌方玩家的最大强度都超此值时,才允许更改策略。 +Should the buildings of the AI be destroyed on defeat or given to neutral player ?=AI的建筑在战败时应该被摧毁还是交给中立玩家? +reform the attack group (getting new units) every that time on an attack (in seconds / 2)=每次攻击时重新组建攻击组(获取新单位)的间隔为多少(秒/2)? +the distance of the front locations from the start location=基地前哨位置距离出生点多远? +Does this version have heroes?=此版本英雄是否可用? +Enable to force computers to have there fixed name instead of a profile name=AI应该使用固定名称而不是档案名称? +Bonus strength added to minor creep camps=绿点野怪额外强度 +Bonus strength added to mediocre creep camps=黄点野怪额外强度 +Bonus strength added to major creep camps=红点野怪额外强度 +Can turn on for debugging mode to display debug type messages=打开调试模式? +New strategy priority must be larger than this multiple to the current strategy=新策略优先级必须大于当前策略几倍? +Set to true to stop amai from giving up early when it detects its going to lose=设为true可阻止AMAI过早放弃游戏 +Priority to choose the first line of hero skills=英雄选择第一技能的概率 +Priority to choose the second line of hero skills=英雄选择第二技能的概率 +Priority to choose the third line of hero skills=英雄选择第三技能的概率 +priority added to heroes to be picked if they are favorites of the used profile=为档案最爱英雄添加多少概率? +The optimal number of peons that should be harvesting gold=黄金采集最佳工人数量 +Multiplier to players strength at lowest aggression to measure if amai is allowed to flee=最低侵略性下玩家强度的倍数,用于衡量是否允许AMAI逃跑 +Multiplier to players strength at highest aggression to measure if amai allowed to flee=最高侵略性下玩家强度的倍数,用于衡量是否允许AMAI逃跑 +Multipler to players strength at highest aggression to measure if amai will flee=最高侵略度下玩家强度的倍数,用于衡量AMAI是否会逃跑 +Aggression below this uses the lowest strength flee multiplier=侵略性低于多少时,使用最低强度的逃跑倍数 +Agression above this uses the highest strength flee multiplier=侵略性高于多少时,使用最高强度的逃跑倍数 + +priority for reviving hero1=复活首英雄的优先级 +priority for reviving hero2=复活第二英雄的优先级 +priority for reviving hero3=复活第三英雄的优先级 +priority increase for building needed buildings=建造所需建筑的额外优先级奖励 +priority increase in time=按时间增加优先级 +priority increase in quantity=按数量增加优先级 +builds another farm at the same time when this near food used to food produced=在距离人口上限多少时建造新的人口建筑? +priority for farm building=建造人口建筑优先级 +priority for peon building=建造人口建筑优先级 +priority for expansion building=开矿建筑优先级 +priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)=在紧急情况下(当前矿场/矿场 + 自有资源即将耗尽)进行开矿的优先级 +priority for rebuilding an expansion=重建分基地的优先级 +number of peons to build when 1 mine is owned=拥有1座金矿时的工人数量上限 +number of peons to build when 2 mines are owned=拥有2座金矿时的工人数量上限 +number of peons to build when more mines are owned=拥有更多金矿时的工人数量上限 +minimum number of peons when 1 mine is owned=拥有1座金矿时的工人数量下限 +minimum number of peons when 2 mines are owned=拥有2座金矿时的工人数量下限 +minimum number of peons when more than 1 mine is owned=拥有超过1个矿场时的工人数量下限 +* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)=在当前策略持续爆人口的优先级(防止AI在拥有大量军队时变更策略) +number of strategies with highest RPs that can be chosen when changing strategy=变更策略时可以选择几个最高优先级的策略? +priority added to all strategies having a building the computer already got as a key building=策略优先级是否附加AI已拥有的关键建筑? +priority added to all strategies having a building the computer already started to build as key building=策略优先级是否附加AI正在建造的关键建筑? +priority added to all strategies having both building the computer already got as key buildings=策略优先级是否附加AI当前的关键建筑? +value for 2 of a key buildings=关键建筑第二关键值 +priority added to all strategies having a upgrade the computer already got as key upgrade in first level=策略优先级是否附加AI第一关键科技? +priority added to all strategies having a upgrade the computer already got as key upgrade in second level=策略优先级是否附加AI第二关键科技? +priority added to all strategies having a upgrade the computer already got as key upgrade in third level=策略优先级是否附加AI第三关键科技?? +priority added to strategies havign the current profiles favorite unit as key units.=策略优先级是否附加AI档案的偏好单位? +this race is locked to this strategy number for testing.(-1 is unlocked)=该种族锁定此策略以便测试。(-1表示不锁定) +does the race use healing fountains ?=该种族使用治疗之泉? +does the race need manual loading of wisps in goldmines ?=该种族采金时需要将工人装载到金矿中,类似暗夜? +What is the unit to load ?=哪种工人单位要装载到金矿中? +What unit is it loaded in ?=哪种金矿装载工人? +does the race have a towerrush ?=该种族是否可以TR? +if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER=TR可以购买物品?如头骨制造腐地或哨塔,仅支持大写英文 +the item is build towers is must?=TR必须购买物品吗(如腐地)? +how many items at a time , if can buy=一次TR最多可以买多少物品? +what is the id of the races towers?=TR时的塔是哪种单位? +if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop=如果建筑需要建造在腐地上,TR时不能创建腐地,应该给塔设置替换建筑,哪种建筑可以替换? +what is the id of the tower upgrade1 (core)?=TR时塔的第一种升级是哪种单位? +what is the id of the tower upgrade2 (secondary)?=TR时塔的第二种升级是哪种单位? +tower can move , like ELF tree or StarCraft human build fly?=TR时塔可以移动吗,比如暗夜的树或星际人类建筑的飞行? +what is the order of tower start move? -- like use root to loc move=TR时开始塔移动的命令是哪个(填写命令字符串)?-- 如使用root进行定位移动 +what is the unorder of tower end move?=TR时结束塔移动的命令是哪个(填写命令字符串)?-- 如使用root进行定位移动 +tower is peon become , like ELF? AI will compensate more 2 peon=工人变成塔,像暗夜?设置后AI会补偿2个工人 +the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less=要多少补偿造塔工人,通常补偿等于TR使用的工人数量,但亡灵的建筑是召唤的,可以设置得少些 +what is the building required to build towers ?=造塔需要哪种建筑?如伐木场或磨坊 +how high (in percent) is the probability of doing a tower rush?=TR的触发概率(百分比)是多少? +does the race have a militia expansion ?=该种族开矿时是否可以敲民兵? +how many racial heroes ?=该种族有多少位本族英雄? +a basic melee unit, only necessary when basic_melee is used=基础近战单位,使用基础近战策略时必须填写 +an advanced melee unit to replace the basic one, only necessary when basic_melee is used=高级近战单位,使用基础近战策略时必须填写 +has the race a ghoul-like wood harvester/fighter unit ?=该种族是否有伐木兼战斗的单位,类似食尸鬼? +do those ghouls go with the army on attacks ?=那些伐木兼战斗的单位会在攻击时跟随军队吗? +can multiple racial workers work on the same building ?=该种族的工人多敲建筑吗?类似人族 +has the race no wood harvesters ?=该种族没有专门的木材收集建筑吗?类似暗夜 +should the race leave injured units at home ?=该种族会把受伤单位留在家吗? +does the race expand with a mine building like undead ?=该种族是否使用矿盖开矿?类似亡灵 +does the race use the goblin shredder ?=该种族使用伐木机吗? +does the race have militia ?=该种族是否可以敲民兵民兵? +how far away from the town hall are the militia allowed ?=民兵允许离基地多远? +what is the militia unit type id?=民兵是哪种单位? +what is the militia ability id ?=民兵的变身技能是哪个? +what is the militia ability of the hall ?=大厅号召民兵的技能是哪个? +what is the unitstring/name of the militia ?=民兵的变身技能命令字符串是什么? +what is the string of the unit that can be turned to militia ?=民兵单位的单位字符串是什么? +shall the computer only use militias against larger threats ?=AI是否仅在遭受较大威胁时才使用民兵? +can the race expand with an uprooted building that also helps fighting the creeps ?=该种族是否让建筑站起来协防?类似暗夜 +how high (in percent) is the probability of doing an ancient expansion when possible ?=该种族使用古树开矿的概率(百分比)是多少? +up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?=该种族使用古树开矿的分矿野怪强度最大是多少(已弃用)? +the unit id of the unit that should help in ancient expansion=哪种单位应该在古树开矿时帮忙? +can expand with item building ?=该种族可以使用物品开矿吗?如迷你大厅 +how high (in percent) is the probability of doing a item expansion ?=进行物品开矿的概率(百分比)是多少? +buy expand item need hall level ?=购买开矿物品需要多少级主基地? +what is expand item name(from StandardUnits.txt) ?=开矿物品是哪个? +does the race sell ziggurats that are at no more needed expansions ?=该种族是否会出售无用的分矿通灵塔? +keep ziggurat if this near another building except a ziggurat is=如果这个通灵塔靠近另一个建筑(除了通灵塔)则不卖 +should the race build farms towards the front (as soon as the front is computed) ?=该种族是否应该在基地前方哨点建造人口建筑(确定哨点后)? +limit the number of farms at the front to this number=基地前方哨点的人口建筑最多可以造几个? +the first that many farms will be built at the mine=优先在金矿附近建造几个人口建筑? +the maximum distance between the mine and the expansion building=分矿与分基地之间的最大距离是? +Racial farms have healing properties=该种族的人口建筑拥有治疗光环? +the bonus strength value hero must have to be able to do the tower rush=英雄必须拥有额外强度才TR +the bonus strength value hero must have to be able to do the ancient expansion=英雄必须拥有额外强度才古树开矿 +priority for ghoul building=建筑食尸鬼的优先级 +smallest number of ghouls to build at all times=至少要建造几个食尸鬼? +maximum number of ghouls to build in low lumber situations=在低木材时最多建造几个食尸鬼? + Used to create path units, must be different from race peon=探路单位是哪种?不能与该种族工人相同 +Building id that can house peons/units and then shoot enemies.=该种族哪种建筑可以装载工人或单位以攻击?类似地洞 +// Used to trigger melee defeat conditions on surrender.=// 用于在投降时触发失败条件。 +// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race=// 如果种族有rushcreep标志且此值大于0,将增加古树开矿时优先攻击附近小怪营地的机会(使用standardunits的rushcreep标志) + +Strategy Function Name=策略名称(使用英文以确保翻译工作) +Default Name=默认名称(使用英文以确保翻译工作) +Default Report=默认策略报告(使用英文以确保翻译工作) +key_building1=第一个核心建筑 +key_building2=第二个核心建筑 +key_upgrade1=第一个核心科技 +key_upgrade2=第二个核心科技 +key_unit=关键单位 +beginning_strat=初始策略 +strat_minimum_time (in seconds/6)=策略最短时间(当前时间/6),按妙计 +strategy_type=策略类型 +main_strategy_tier=策略核心主城等级 +base rp=基础资源点 +ally bonus=盟友加成 +1on1 bonus=1V1加成 +FFA bonus=混战加成 +random enemy bonus=对阵随机种族加成 +ELF enemy bonus=对阵暗夜加成 +HUMAN enemy bonus=对阵人类加成 +ORC enemy bonus=对阵兽族加成 +UNDEAD enemy bonus=对阵亡灵加成 +ELF ally bonus=暗夜盟友加成 +HUMAN ally bonus=人类盟友加成 +ORC ally bonus=兽族盟友加成 +UNDEAD ally bonus=亡灵盟友加成 +anti air strength=反制空军强度 +anti casters strength=反制施法者强度 +anti towers strength=反制塔强度 +anti piercing strength=反制穿刺强度 +anti normal strength=反制普通强度 +anti siege strength=反制攻城强度 +anti magic strength=反制魔法强度 +anti unarmored strength=反无甲强度 +anti lightarmor strength=反轻甲强度 +anti mediumarmor strength=反中甲强度 +anti heavyarmor strength=反重甲强度 +expansion time=开首矿时间 +second expansion time=开二矿时间 +first hero bonus=首发哪位英雄有加成 +first hero bonus amount=首发英雄加成值 +second hero bonus=二发哪位英雄有加成 +second hero bonus amount=二发英雄加成值 +third hero bonus=三发哪位英雄有加成 +third hero bonus amount=三发英雄加成值 +enemy_ELF add agg t1=1本对敌暗夜侵略性额外加成 +enemy_ELF add agg t2=2本对敌暗夜侵略性额外加成 +enemy_ELF add agg t3=3本对敌暗夜侵略性额外加成 +enemy_HUMAN add agg t1=1本对敌人类侵略性额外加成 +enemy_HUMAN add agg t2=2本对敌人类侵略性额外加成 +enemy_HUMAN add agg t3=3本对敌人类侵略性额外加成 +enemy_ORC add agg t1=1本对敌兽族侵略性额外加成 +enemy_ORC add agg t2=2本对敌兽族侵略性额外加成 +enemy_ORC add agg t3=3本对敌兽族侵略性额外加成 +enemy_UNDEAD add agg t1=1本对敌亡灵侵略性额外加成 +enemy_UNDEAD add agg t2=2本对敌亡灵侵略性额外加成 +enemy_UNDEAD add agg t3=3本对敌亡灵侵略性额外加成 + +Profile Name=档案名称 +Race=种族 +Aggression=侵略性,建议-10~10 +Uncertainty=不确定性,建议5~15 +Minimum Attack Strength=最小攻击强度,建议6~9 +Build Farm at left food=偏好人口可用值,可用人口减已用人口小于该值时AI会优先建人口建筑,建议6~12 +first expansion time=开首矿时间,建议-10~10 +second expansion time=开二矿时间,建议-20~20 +strategy persistence=策略持久性,建议500~1500 +influences number of factories built=考虑建造更多兵营,建议0.9~1.0 +Taunt Rate=嘲讽概率,建议0~2 +Expansion Target Bonus=进攻敌人分矿倾向,建议0~20 +Hard coded AI target bonus=AI进攻目标奖励(硬编码),建议0~20 +Hard coded AI target rate=AI进攻频率奖励(硬编码),建议0.3~0.8 +Surrender Value=投降偏好,越高越爱带投,建议0~4 +Favorite ELF Hero=最喜欢的暗夜英雄 +Favorite HUMAN Hero=最喜欢的人类英雄 +Favorite ORC Hero=最喜欢兽族英雄 +Favorite UNDEAD Hero=最喜欢的亡灵英雄 +Favorite Neutral Hero=最喜欢的中立英雄 +Favorite ELF Unit=最喜欢的暗夜单位 +Favorite HUMAN Unit=最喜欢的人类单位 +Favorite ORC Unit=最喜欢兽族单位 +Favorite UNDEAD Unit=最喜欢的亡灵单位 +Rare Profile=稀有档案,0为普通,1为稀有 \ No newline at end of file diff --git a/Languages/Deutsch/StrategyManager.txt b/Languages/Deutsch/StrategyManager.txt index 6a857c6fb..4fb861fbe 100644 --- a/Languages/Deutsch/StrategyManager.txt +++ b/Languages/Deutsch/StrategyManager.txt @@ -50,4 +50,275 @@ title_strategy_manager= title_profile_editor= title_strategy_editor= title_racial_builds_editor= -title_settings_editor= \ No newline at end of file +title_settings_editor= + +increases performance by checking stuff not so often= +how many computer players is needed tor the sleep multiplier to start increasing.= +how many computer players is needed tor the sleep multiplier to stop increasing.= +how much is the sleep multiplied when it's below the slm_start condition= +how much is the sleep multiplied when it's above the slm_end condition= +scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= +should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= +computers only repair buildings if they have more than this many workers= +computers only repair buildings when the town is under attack if they got more than this many workers= +Distance behind the army a zeppelin follows= +when is neutral heroes available in seconds /5= +how close to a shop do a unit have to be for buying?= +time in seconds the hero goes to a shop before it gives up if it haven't reached it= +time in seconds a hero tries to buy items at shop before giving up= +"every this * 5 seconds, the build array is reset"= +normalizing strategy priorities added from strengths with this value= +the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= +strategy when attacking enemy players= +"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= +Distance from ranged units enemy units can be targeted with focus fire= +Distance from melee units enemy units can be targeted with focus fire= +Units flee from battle if the health goes below his % value(0.25 is 25%)= +Units flee from battle if the health goes below this= +how near the units a statue used by undead should be in the fights= +units will stay within this radius from a hero that is using town portal= +computers give extra gold above this value to other computers on the same team in need of gold= +computers give extra lumber above this value to other computers on the same team in need of lumber= +how many towns is a computer allowed to have?= +Add the [AMAI] tag in front of name= +Add the current skill after the name= +how many different harass groups you can use= +"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= +the radius araound a mine computers check for creeps before expanding there= +how far away from ranged enemy units harassing units attack a inferior enemy unit= +how far away from melee enemy units harassing units attack a inferior enemy unit= +how far away from ranged enemy units harassing units turn and flee= +how far away from melee enemy units harassing units turn and flee= +computers use chat taunts= +a enemy army within this distance is counted as a full threat= +a enemy army outside this distance is counted as no threat= +how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= +"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= +accepted threat level increase starts at this time= +and ends at that time= +it starts with this value= +and ends with that value= +accepted threat level multiplier increases at that enemy number= +until that enemy number= +the multiplier starts for accepted threat level starts with this= +and ends with this= +Army uses TP to get home and defend if a threat is greater than this= +Army uses TP to get home and defend if a threat is greater than this= +Army won't use TP home if they are closer to base than this and a low threat level appears= +Army won't use TP home if they are closer to base than this and a high threat level appears= +how big the army need to be for use of TP to threatened town= +minimum threat level TP use is allowed on= +how many peons does a goblin shredder replace in lumber harvesting= +computers don't build any workers for lumber harvesting if they have more lumber than this= +computers build all needed workers for lumber harvesting if they have lumber lower than this= +does the version have neutral heroes ?= +how many neutral heroes ?= +can only heroes buy stuff ?= +what is the versions food limit ?= +units within that radius are considered belonging to the current battle= +"same as with normal_battle_radius, but for battles against creeps"= +how near a mine a enemy building must be to make amai recognize it as taken= +what is the base strength of a hero (the level number is added to get the actual strength) ?= +at what level do the heroes get their ultimates ?= +how much extra strength does the ultimate give to the hero ?= +how far away do creeps attack buildings ?= +can mercs be bought at night without waking up creeps ?= +check for towers in this radius around a target= +check for towers in this radius during harassing= +don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= +Should the buildings of the AI be destroyed on defeat or given to neutral player ?= +reform the attack group (getting new units) every that time on an attack (in seconds / 2)= +the distance of the front locations from the start location= +Does this version have heroes?= +Enable to force computers to have there fixed name instead of a profile name= +Bonus strength added to minor creep camps= +Bonus strength added to mediocre creep camps= +Bonus strength added to major creep camps= +Can turn on for debugging mode to display debug type messages= +New strategy priority must be larger than this multiple to the current strategy= +Set to true to stop amai from giving up early when it detects its going to lose= +Priority to choose the first line of hero skills= +Priority to choose the second line of hero skills= +Priority to choose the third line of hero skills= +priority added to heroes to be picked if they are favorites of the used profile= +The optimal number of peons that should be harvesting gold= +Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= +Multiplier to players strength at highest aggression to measure if amai allowed to flee= +Multipler to players strength at highest aggression to measure if amai will flee= +Aggression below this uses the lowest strength flee multiplier= +Agression above this uses the highest strength flee multiplier= + +priority for reviving hero1= +priority for reviving hero2= +priority for reviving hero3= +priority increase for building needed buildings= +priority increase in time= +priority increase in quantity= +builds another farm at the same time when this near food used to food produced= +priority for farm building= +priority for peon building= +priority for expansion building= +priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= +priority for rebuilding an expansion= +number of peons to build when 1 mine is owned= +number of peons to build when 2 mines are owned= +number of peons to build when more mines are owned= +minimum number of peons when 1 mine is owned= +minimum number of peons when 2 mines are owned= +minimum number of peons when more than 1 mine is owned= +* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= +number of strategies with highest RPs that can be chosen when changing strategy= +priority added to all strategies having a building the computer already got as a key building= +priority added to all strategies having a building the computer already started to build as key building= +priority added to all strategies having both building the computer already got as key buildings= +value for 2 of a key buildings= +priority added to all strategies having a upgrade the computer already got as key upgrade in first level= +priority added to all strategies having a upgrade the computer already got as key upgrade in second level= +priority added to all strategies having a upgrade the computer already got as key upgrade in third level= +priority added to strategies havign the current profiles favorite unit as key units.= +this race is locked to this strategy number for testing.(-1 is unlocked)= +does the race use healing fountains ?= +does the race need manual loading of wisps in goldmines ?= +What is the unit to load ?= +What unit is it loaded in ?= +does the race have a towerrush ?= +if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= +the item is build towers is must?= +"how many items at a time , if can buy"= +what is the id of the races towers?= +"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= +what is the id of the tower upgrade1 (core)?= +what is the id of the tower upgrade2 (secondary)?= +"tower can move , like ELF tree or StarCraft human build fly?"= +what is the order of tower start move? -- like use root to loc move= +what is the unorder of tower end move?= +"tower is peon become , like ELF? AI will compensate more 2 peon"= +"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= +what is the building required to build towers ?= +how high (in percent) is the probability of doing a tower rush?= +does the race have a militia expansion ?= +how many racial heroes ?= +"a basic melee unit, only necessary when basic_melee is used"= +"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= +has the race a ghoul-like wood harvester/fighter unit ?= +do those ghouls go with the army on attacks ?= +can multiple racial workers work on the same building ?= +has the race no wood harvesters ?= +should the race leave injured units at home ?= +does the race expand with a mine building like undead ?= +does the race use the goblin shredder ?= +does the race have militia ?= +how far away from the town hall are the militia allowed ?= +what is the militia unit type id?= +what is the militia ability id ?= +what is the militia ability of the hall ?= +what is the unitstring/name of the militia ?= +what is the string of the unit that can be turned to militia ?= +shall the computer only use militias against larger threats ?= +can the race expand with an uprooted building that also helps fighting the creeps ?= +how high (in percent) is the probability of doing an ancient expansion when possible ?= +up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= +the unit id of the unit that should help in ancient expansion= +can expand with item building ?= +how high (in percent) is the probability of doing a item expansion ?= +buy expand item need hall level ?= +what is expand item name(from StandardUnits.txt) ?= +does the race sell ziggurats that are at no more needed expansions ?= +keep ziggurat if this near another building except a ziggurat is= +should the race build farms towards the front (as soon as the front is computed) ?= +limit the number of farms at the front to this number= +the first that many farms will be built at the mine= +the maximum distance between the mine and the expansion building= +Racial farms have healing properties= +the bonus strength value hero must have to be able to do the tower rush= +the bonus strength value hero must have to be able to do the ancient expansion= +priority for ghoul building= +smallest number of ghouls to build at all times= +maximum number of ghouls to build in low lumber situations= +" Used to create path units, must be different from race peon"= +Building id that can house peons/units and then shoot enemies.= +// Used to trigger melee defeat conditions on surrender.= +"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= + +Strategy Function Name= +Default Name= +Default Report= +key_building1= +key_building2= +key_upgrade1= +key_upgrade2= +key_unit= +beginning_strat= +strat_minimum_time (in seconds/6)= +strategy_type= +main_strategy_tier= +base rp= +ally bonus= +1on1 bonus= +FFA bonus= +random enemy bonus= +ELF enemy bonus= +HUMAN enemy bonus= +ORC enemy bonus= +UNDEAD enemy bonus= +ELF ally bonus= +HUMAN ally bonus= +ORC ally bonus= +UNDEAD ally bonus= +anti air strength= +anti casters strength= +anti towers strength= +anti piercing strength= +anti normal strength= +anti siege strength= +anti magic strength= +anti unarmored strength= +anti lightarmor strength= +anti mediumarmor strength= +anti heavyarmor strength= +expansion time= +second expansion time= +first hero bonus= +first hero bonus amount= +second hero bonus= +second hero bonus amount= +third hero bonus= +third hero bonus amount= +enemy_ELF add agg t1= +enemy_ELF add agg t2= +enemy_ELF add agg t3= +enemy_HUMAN add agg t1= +enemy_HUMAN add agg t2= +enemy_HUMAN add agg t3= +enemy_ORC add agg t1= +enemy_ORC add agg t2= +enemy_ORC add agg t3= +enemy_UNDEAD add agg t1= +enemy_UNDEAD add agg t2= +enemy_UNDEAD add agg t3= + +Profile Name= +Race= +Aggression= +Uncertainty= +Minimum Attack Strength= +Build Farm at left food= +first expansion time= +second expansion time= +strategy persistence= +influences number of factories built= +Taunt Rate= +Expansion Target Bonus= +Hard coded AI target bonus= +Hard coded AI target rate= +Surrender Value= +Favorite ELF Hero= +Favorite HUMAN Hero= +Favorite ORC Hero= +Favorite UNDEAD Hero= +Favorite Neutral Hero= +Favorite ELF Unit= +Favorite HUMAN Unit= +Favorite ORC Unit= +Favorite UNDEAD Unit= +Rare Profile= \ No newline at end of file diff --git a/Languages/English/StrategyManager.txt b/Languages/English/StrategyManager.txt index edba94288..44d5ad648 100644 --- a/Languages/English/StrategyManager.txt +++ b/Languages/English/StrategyManager.txt @@ -50,4 +50,275 @@ title_strategy_manager=AMAI Strategy Manager title_profile_editor=AMAI Profile Editor title_strategy_editor=AMAI Strategy Editor title_racial_builds_editor=AMAI Racial Builds Editor -title_settings_editor=AMAI Settings Editor \ No newline at end of file +title_settings_editor=AMAI Settings Editor + +increases performance by checking stuff not so often= +how many computer players is needed tor the sleep multiplier to start increasing.= +how many computer players is needed tor the sleep multiplier to stop increasing.= +how much is the sleep multiplied when it's below the slm_start condition= +how much is the sleep multiplied when it's above the slm_end condition= +scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= +should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= +computers only repair buildings if they have more than this many workers= +computers only repair buildings when the town is under attack if they got more than this many workers= +Distance behind the army a zeppelin follows= +when is neutral heroes available in seconds /5= +how close to a shop do a unit have to be for buying?= +time in seconds the hero goes to a shop before it gives up if it haven't reached it= +time in seconds a hero tries to buy items at shop before giving up= +"every this * 5 seconds, the build array is reset"= +normalizing strategy priorities added from strengths with this value= +the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= +strategy when attacking enemy players= +"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= +Distance from ranged units enemy units can be targeted with focus fire= +Distance from melee units enemy units can be targeted with focus fire= +Units flee from battle if the health goes below his % value(0.25 is 25%)= +Units flee from battle if the health goes below this= +how near the units a statue used by undead should be in the fights= +units will stay within this radius from a hero that is using town portal= +computers give extra gold above this value to other computers on the same team in need of gold= +computers give extra lumber above this value to other computers on the same team in need of lumber= +how many towns is a computer allowed to have?= +Add the [AMAI] tag in front of name= +Add the current skill after the name= +how many different harass groups you can use= +"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= +the radius araound a mine computers check for creeps before expanding there= +how far away from ranged enemy units harassing units attack a inferior enemy unit= +how far away from melee enemy units harassing units attack a inferior enemy unit= +how far away from ranged enemy units harassing units turn and flee= +how far away from melee enemy units harassing units turn and flee= +computers use chat taunts= +a enemy army within this distance is counted as a full threat= +a enemy army outside this distance is counted as no threat= +how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= +"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= +accepted threat level increase starts at this time= +and ends at that time= +it starts with this value= +and ends with that value= +accepted threat level multiplier increases at that enemy number= +until that enemy number= +the multiplier starts for accepted threat level starts with this= +and ends with this= +Army uses TP to get home and defend if a threat is greater than this= +Army uses TP to get home and defend if a threat is greater than this= +Army won't use TP home if they are closer to base than this and a low threat level appears= +Army won't use TP home if they are closer to base than this and a high threat level appears= +how big the army need to be for use of TP to threatened town= +minimum threat level TP use is allowed on= +how many peons does a goblin shredder replace in lumber harvesting= +computers don't build any workers for lumber harvesting if they have more lumber than this= +computers build all needed workers for lumber harvesting if they have lumber lower than this= +does the version have neutral heroes ?= +how many neutral heroes ?= +can only heroes buy stuff ?= +what is the versions food limit ?= +units within that radius are considered belonging to the current battle= +"same as with normal_battle_radius, but for battles against creeps"= +how near a mine a enemy building must be to make amai recognize it as taken= +what is the base strength of a hero (the level number is added to get the actual strength) ?= +at what level do the heroes get their ultimates ?= +how much extra strength does the ultimate give to the hero ?= +how far away do creeps attack buildings ?= +can mercs be bought at night without waking up creeps ?= +check for towers in this radius around a target= +check for towers in this radius during harassing= +don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= +Should the buildings of the AI be destroyed on defeat or given to neutral player ?= +reform the attack group (getting new units) every that time on an attack (in seconds / 2)= +the distance of the front locations from the start location= +Does this version have heroes?= +Enable to force computers to have there fixed name instead of a profile name= +Bonus strength added to minor creep camps= +Bonus strength added to mediocre creep camps= +Bonus strength added to major creep camps= +Can turn on for debugging mode to display debug type messages= +New strategy priority must be larger than this multiple to the current strategy= +Set to true to stop amai from giving up early when it detects its going to lose= +Priority to choose the first line of hero skills= +Priority to choose the second line of hero skills= +Priority to choose the third line of hero skills= +priority added to heroes to be picked if they are favorites of the used profile= +The optimal number of peons that should be harvesting gold= +Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= +Multiplier to players strength at highest aggression to measure if amai allowed to flee= +Multipler to players strength at highest aggression to measure if amai will flee= +Aggression below this uses the lowest strength flee multiplier= +Agression above this uses the highest strength flee multiplier= + +priority for reviving hero1= +priority for reviving hero2= +priority for reviving hero3= +priority increase for building needed buildings= +priority increase in time= +priority increase in quantity= +builds another farm at the same time when this near food used to food produced= +priority for farm building= +priority for peon building= +priority for expansion building= +priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= +priority for rebuilding an expansion= +number of peons to build when 1 mine is owned= +number of peons to build when 2 mines are owned= +number of peons to build when more mines are owned= +minimum number of peons when 1 mine is owned= +minimum number of peons when 2 mines are owned= +minimum number of peons when more than 1 mine is owned= +* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= +number of strategies with highest RPs that can be chosen when changing strategy= +priority added to all strategies having a building the computer already got as a key building= +priority added to all strategies having a building the computer already started to build as key building= +priority added to all strategies having both building the computer already got as key buildings= +value for 2 of a key buildings= +priority added to all strategies having a upgrade the computer already got as key upgrade in first level= +priority added to all strategies having a upgrade the computer already got as key upgrade in second level= +priority added to all strategies having a upgrade the computer already got as key upgrade in third level= +priority added to strategies havign the current profiles favorite unit as key units.= +this race is locked to this strategy number for testing.(-1 is unlocked)= +does the race use healing fountains ?= +does the race need manual loading of wisps in goldmines ?= +What is the unit to load ?= +What unit is it loaded in ?= +does the race have a towerrush ?= +if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= +the item is build towers is must?= +"how many items at a time , if can buy"= +what is the id of the races towers?= +"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= +what is the id of the tower upgrade1 (core)?= +what is the id of the tower upgrade2 (secondary)?= +"tower can move , like ELF tree or StarCraft human build fly?"= +what is the order of tower start move? -- like use root to loc move= +what is the unorder of tower end move?= +"tower is peon become , like ELF? AI will compensate more 2 peon"= +"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= +what is the building required to build towers ?= +how high (in percent) is the probability of doing a tower rush?= +does the race have a militia expansion ?= +how many racial heroes ?= +"a basic melee unit, only necessary when basic_melee is used"= +"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= +has the race a ghoul-like wood harvester/fighter unit ?= +do those ghouls go with the army on attacks ?= +can multiple racial workers work on the same building ?= +has the race no wood harvesters ?= +should the race leave injured units at home ?= +does the race expand with a mine building like undead ?= +does the race use the goblin shredder ?= +does the race have militia ?= +how far away from the town hall are the militia allowed ?= +what is the militia unit type id?= +what is the militia ability id ?= +what is the militia ability of the hall ?= +what is the unitstring/name of the militia ?= +what is the string of the unit that can be turned to militia ?= +shall the computer only use militias against larger threats ?= +can the race expand with an uprooted building that also helps fighting the creeps ?= +how high (in percent) is the probability of doing an ancient expansion when possible ?= +up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= +the unit id of the unit that should help in ancient expansion= +can expand with item building ?= +how high (in percent) is the probability of doing a item expansion ?= +buy expand item need hall level ?= +what is expand item name(from StandardUnits.txt) ?= +does the race sell ziggurats that are at no more needed expansions ?= +keep ziggurat if this near another building except a ziggurat is= +should the race build farms towards the front (as soon as the front is computed) ?= +limit the number of farms at the front to this number= +the first that many farms will be built at the mine= +the maximum distance between the mine and the expansion building= +Racial farms have healing properties= +the bonus strength value hero must have to be able to do the tower rush= +the bonus strength value hero must have to be able to do the ancient expansion= +priority for ghoul building= +smallest number of ghouls to build at all times= +maximum number of ghouls to build in low lumber situations= +" Used to create path units, must be different from race peon"= +Building id that can house peons/units and then shoot enemies.= +// Used to trigger melee defeat conditions on surrender.= +"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= + +Strategy Function Name= +Default Name= +Default Report= +key_building1= +key_building2= +key_upgrade1= +key_upgrade2= +key_unit= +beginning_strat= +strat_minimum_time (in seconds/6)= +strategy_type= +main_strategy_tier= +base rp= +ally bonus= +1on1 bonus= +FFA bonus= +random enemy bonus= +ELF enemy bonus= +HUMAN enemy bonus= +ORC enemy bonus= +UNDEAD enemy bonus= +ELF ally bonus= +HUMAN ally bonus= +ORC ally bonus= +UNDEAD ally bonus= +anti air strength= +anti casters strength= +anti towers strength= +anti piercing strength= +anti normal strength= +anti siege strength= +anti magic strength= +anti unarmored strength= +anti lightarmor strength= +anti mediumarmor strength= +anti heavyarmor strength= +expansion time= +second expansion time= +first hero bonus= +first hero bonus amount= +second hero bonus= +second hero bonus amount= +third hero bonus= +third hero bonus amount= +enemy_ELF add agg t1= +enemy_ELF add agg t2= +enemy_ELF add agg t3= +enemy_HUMAN add agg t1= +enemy_HUMAN add agg t2= +enemy_HUMAN add agg t3= +enemy_ORC add agg t1= +enemy_ORC add agg t2= +enemy_ORC add agg t3= +enemy_UNDEAD add agg t1= +enemy_UNDEAD add agg t2= +enemy_UNDEAD add agg t3= + +Profile Name= +Race= +Aggression= +Uncertainty= +Minimum Attack Strength= +Build Farm at left food= +first expansion time= +second expansion time= +strategy persistence= +influences number of factories built= +Taunt Rate= +Expansion Target Bonus= +Hard coded AI target bonus= +Hard coded AI target rate= +Surrender Value= +Favorite ELF Hero= +Favorite HUMAN Hero= +Favorite ORC Hero= +Favorite UNDEAD Hero= +Favorite Neutral Hero= +Favorite ELF Unit= +Favorite HUMAN Unit= +Favorite ORC Unit= +Favorite UNDEAD Unit= +Rare Profile= \ No newline at end of file diff --git a/Languages/French/StrategyManager.txt b/Languages/French/StrategyManager.txt index 6a857c6fb..4fb861fbe 100644 --- a/Languages/French/StrategyManager.txt +++ b/Languages/French/StrategyManager.txt @@ -50,4 +50,275 @@ title_strategy_manager= title_profile_editor= title_strategy_editor= title_racial_builds_editor= -title_settings_editor= \ No newline at end of file +title_settings_editor= + +increases performance by checking stuff not so often= +how many computer players is needed tor the sleep multiplier to start increasing.= +how many computer players is needed tor the sleep multiplier to stop increasing.= +how much is the sleep multiplied when it's below the slm_start condition= +how much is the sleep multiplied when it's above the slm_end condition= +scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= +should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= +computers only repair buildings if they have more than this many workers= +computers only repair buildings when the town is under attack if they got more than this many workers= +Distance behind the army a zeppelin follows= +when is neutral heroes available in seconds /5= +how close to a shop do a unit have to be for buying?= +time in seconds the hero goes to a shop before it gives up if it haven't reached it= +time in seconds a hero tries to buy items at shop before giving up= +"every this * 5 seconds, the build array is reset"= +normalizing strategy priorities added from strengths with this value= +the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= +strategy when attacking enemy players= +"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= +Distance from ranged units enemy units can be targeted with focus fire= +Distance from melee units enemy units can be targeted with focus fire= +Units flee from battle if the health goes below his % value(0.25 is 25%)= +Units flee from battle if the health goes below this= +how near the units a statue used by undead should be in the fights= +units will stay within this radius from a hero that is using town portal= +computers give extra gold above this value to other computers on the same team in need of gold= +computers give extra lumber above this value to other computers on the same team in need of lumber= +how many towns is a computer allowed to have?= +Add the [AMAI] tag in front of name= +Add the current skill after the name= +how many different harass groups you can use= +"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= +the radius araound a mine computers check for creeps before expanding there= +how far away from ranged enemy units harassing units attack a inferior enemy unit= +how far away from melee enemy units harassing units attack a inferior enemy unit= +how far away from ranged enemy units harassing units turn and flee= +how far away from melee enemy units harassing units turn and flee= +computers use chat taunts= +a enemy army within this distance is counted as a full threat= +a enemy army outside this distance is counted as no threat= +how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= +"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= +accepted threat level increase starts at this time= +and ends at that time= +it starts with this value= +and ends with that value= +accepted threat level multiplier increases at that enemy number= +until that enemy number= +the multiplier starts for accepted threat level starts with this= +and ends with this= +Army uses TP to get home and defend if a threat is greater than this= +Army uses TP to get home and defend if a threat is greater than this= +Army won't use TP home if they are closer to base than this and a low threat level appears= +Army won't use TP home if they are closer to base than this and a high threat level appears= +how big the army need to be for use of TP to threatened town= +minimum threat level TP use is allowed on= +how many peons does a goblin shredder replace in lumber harvesting= +computers don't build any workers for lumber harvesting if they have more lumber than this= +computers build all needed workers for lumber harvesting if they have lumber lower than this= +does the version have neutral heroes ?= +how many neutral heroes ?= +can only heroes buy stuff ?= +what is the versions food limit ?= +units within that radius are considered belonging to the current battle= +"same as with normal_battle_radius, but for battles against creeps"= +how near a mine a enemy building must be to make amai recognize it as taken= +what is the base strength of a hero (the level number is added to get the actual strength) ?= +at what level do the heroes get their ultimates ?= +how much extra strength does the ultimate give to the hero ?= +how far away do creeps attack buildings ?= +can mercs be bought at night without waking up creeps ?= +check for towers in this radius around a target= +check for towers in this radius during harassing= +don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= +Should the buildings of the AI be destroyed on defeat or given to neutral player ?= +reform the attack group (getting new units) every that time on an attack (in seconds / 2)= +the distance of the front locations from the start location= +Does this version have heroes?= +Enable to force computers to have there fixed name instead of a profile name= +Bonus strength added to minor creep camps= +Bonus strength added to mediocre creep camps= +Bonus strength added to major creep camps= +Can turn on for debugging mode to display debug type messages= +New strategy priority must be larger than this multiple to the current strategy= +Set to true to stop amai from giving up early when it detects its going to lose= +Priority to choose the first line of hero skills= +Priority to choose the second line of hero skills= +Priority to choose the third line of hero skills= +priority added to heroes to be picked if they are favorites of the used profile= +The optimal number of peons that should be harvesting gold= +Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= +Multiplier to players strength at highest aggression to measure if amai allowed to flee= +Multipler to players strength at highest aggression to measure if amai will flee= +Aggression below this uses the lowest strength flee multiplier= +Agression above this uses the highest strength flee multiplier= + +priority for reviving hero1= +priority for reviving hero2= +priority for reviving hero3= +priority increase for building needed buildings= +priority increase in time= +priority increase in quantity= +builds another farm at the same time when this near food used to food produced= +priority for farm building= +priority for peon building= +priority for expansion building= +priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= +priority for rebuilding an expansion= +number of peons to build when 1 mine is owned= +number of peons to build when 2 mines are owned= +number of peons to build when more mines are owned= +minimum number of peons when 1 mine is owned= +minimum number of peons when 2 mines are owned= +minimum number of peons when more than 1 mine is owned= +* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= +number of strategies with highest RPs that can be chosen when changing strategy= +priority added to all strategies having a building the computer already got as a key building= +priority added to all strategies having a building the computer already started to build as key building= +priority added to all strategies having both building the computer already got as key buildings= +value for 2 of a key buildings= +priority added to all strategies having a upgrade the computer already got as key upgrade in first level= +priority added to all strategies having a upgrade the computer already got as key upgrade in second level= +priority added to all strategies having a upgrade the computer already got as key upgrade in third level= +priority added to strategies havign the current profiles favorite unit as key units.= +this race is locked to this strategy number for testing.(-1 is unlocked)= +does the race use healing fountains ?= +does the race need manual loading of wisps in goldmines ?= +What is the unit to load ?= +What unit is it loaded in ?= +does the race have a towerrush ?= +if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= +the item is build towers is must?= +"how many items at a time , if can buy"= +what is the id of the races towers?= +"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= +what is the id of the tower upgrade1 (core)?= +what is the id of the tower upgrade2 (secondary)?= +"tower can move , like ELF tree or StarCraft human build fly?"= +what is the order of tower start move? -- like use root to loc move= +what is the unorder of tower end move?= +"tower is peon become , like ELF? AI will compensate more 2 peon"= +"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= +what is the building required to build towers ?= +how high (in percent) is the probability of doing a tower rush?= +does the race have a militia expansion ?= +how many racial heroes ?= +"a basic melee unit, only necessary when basic_melee is used"= +"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= +has the race a ghoul-like wood harvester/fighter unit ?= +do those ghouls go with the army on attacks ?= +can multiple racial workers work on the same building ?= +has the race no wood harvesters ?= +should the race leave injured units at home ?= +does the race expand with a mine building like undead ?= +does the race use the goblin shredder ?= +does the race have militia ?= +how far away from the town hall are the militia allowed ?= +what is the militia unit type id?= +what is the militia ability id ?= +what is the militia ability of the hall ?= +what is the unitstring/name of the militia ?= +what is the string of the unit that can be turned to militia ?= +shall the computer only use militias against larger threats ?= +can the race expand with an uprooted building that also helps fighting the creeps ?= +how high (in percent) is the probability of doing an ancient expansion when possible ?= +up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= +the unit id of the unit that should help in ancient expansion= +can expand with item building ?= +how high (in percent) is the probability of doing a item expansion ?= +buy expand item need hall level ?= +what is expand item name(from StandardUnits.txt) ?= +does the race sell ziggurats that are at no more needed expansions ?= +keep ziggurat if this near another building except a ziggurat is= +should the race build farms towards the front (as soon as the front is computed) ?= +limit the number of farms at the front to this number= +the first that many farms will be built at the mine= +the maximum distance between the mine and the expansion building= +Racial farms have healing properties= +the bonus strength value hero must have to be able to do the tower rush= +the bonus strength value hero must have to be able to do the ancient expansion= +priority for ghoul building= +smallest number of ghouls to build at all times= +maximum number of ghouls to build in low lumber situations= +" Used to create path units, must be different from race peon"= +Building id that can house peons/units and then shoot enemies.= +// Used to trigger melee defeat conditions on surrender.= +"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= + +Strategy Function Name= +Default Name= +Default Report= +key_building1= +key_building2= +key_upgrade1= +key_upgrade2= +key_unit= +beginning_strat= +strat_minimum_time (in seconds/6)= +strategy_type= +main_strategy_tier= +base rp= +ally bonus= +1on1 bonus= +FFA bonus= +random enemy bonus= +ELF enemy bonus= +HUMAN enemy bonus= +ORC enemy bonus= +UNDEAD enemy bonus= +ELF ally bonus= +HUMAN ally bonus= +ORC ally bonus= +UNDEAD ally bonus= +anti air strength= +anti casters strength= +anti towers strength= +anti piercing strength= +anti normal strength= +anti siege strength= +anti magic strength= +anti unarmored strength= +anti lightarmor strength= +anti mediumarmor strength= +anti heavyarmor strength= +expansion time= +second expansion time= +first hero bonus= +first hero bonus amount= +second hero bonus= +second hero bonus amount= +third hero bonus= +third hero bonus amount= +enemy_ELF add agg t1= +enemy_ELF add agg t2= +enemy_ELF add agg t3= +enemy_HUMAN add agg t1= +enemy_HUMAN add agg t2= +enemy_HUMAN add agg t3= +enemy_ORC add agg t1= +enemy_ORC add agg t2= +enemy_ORC add agg t3= +enemy_UNDEAD add agg t1= +enemy_UNDEAD add agg t2= +enemy_UNDEAD add agg t3= + +Profile Name= +Race= +Aggression= +Uncertainty= +Minimum Attack Strength= +Build Farm at left food= +first expansion time= +second expansion time= +strategy persistence= +influences number of factories built= +Taunt Rate= +Expansion Target Bonus= +Hard coded AI target bonus= +Hard coded AI target rate= +Surrender Value= +Favorite ELF Hero= +Favorite HUMAN Hero= +Favorite ORC Hero= +Favorite UNDEAD Hero= +Favorite Neutral Hero= +Favorite ELF Unit= +Favorite HUMAN Unit= +Favorite ORC Unit= +Favorite UNDEAD Unit= +Rare Profile= \ No newline at end of file diff --git a/Languages/Norwegian/StrategyManager.txt b/Languages/Norwegian/StrategyManager.txt index 6a857c6fb..4fb861fbe 100644 --- a/Languages/Norwegian/StrategyManager.txt +++ b/Languages/Norwegian/StrategyManager.txt @@ -50,4 +50,275 @@ title_strategy_manager= title_profile_editor= title_strategy_editor= title_racial_builds_editor= -title_settings_editor= \ No newline at end of file +title_settings_editor= + +increases performance by checking stuff not so often= +how many computer players is needed tor the sleep multiplier to start increasing.= +how many computer players is needed tor the sleep multiplier to stop increasing.= +how much is the sleep multiplied when it's below the slm_start condition= +how much is the sleep multiplied when it's above the slm_end condition= +scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= +should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= +computers only repair buildings if they have more than this many workers= +computers only repair buildings when the town is under attack if they got more than this many workers= +Distance behind the army a zeppelin follows= +when is neutral heroes available in seconds /5= +how close to a shop do a unit have to be for buying?= +time in seconds the hero goes to a shop before it gives up if it haven't reached it= +time in seconds a hero tries to buy items at shop before giving up= +"every this * 5 seconds, the build array is reset"= +normalizing strategy priorities added from strengths with this value= +the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= +strategy when attacking enemy players= +"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= +Distance from ranged units enemy units can be targeted with focus fire= +Distance from melee units enemy units can be targeted with focus fire= +Units flee from battle if the health goes below his % value(0.25 is 25%)= +Units flee from battle if the health goes below this= +how near the units a statue used by undead should be in the fights= +units will stay within this radius from a hero that is using town portal= +computers give extra gold above this value to other computers on the same team in need of gold= +computers give extra lumber above this value to other computers on the same team in need of lumber= +how many towns is a computer allowed to have?= +Add the [AMAI] tag in front of name= +Add the current skill after the name= +how many different harass groups you can use= +"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= +the radius araound a mine computers check for creeps before expanding there= +how far away from ranged enemy units harassing units attack a inferior enemy unit= +how far away from melee enemy units harassing units attack a inferior enemy unit= +how far away from ranged enemy units harassing units turn and flee= +how far away from melee enemy units harassing units turn and flee= +computers use chat taunts= +a enemy army within this distance is counted as a full threat= +a enemy army outside this distance is counted as no threat= +how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= +"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= +accepted threat level increase starts at this time= +and ends at that time= +it starts with this value= +and ends with that value= +accepted threat level multiplier increases at that enemy number= +until that enemy number= +the multiplier starts for accepted threat level starts with this= +and ends with this= +Army uses TP to get home and defend if a threat is greater than this= +Army uses TP to get home and defend if a threat is greater than this= +Army won't use TP home if they are closer to base than this and a low threat level appears= +Army won't use TP home if they are closer to base than this and a high threat level appears= +how big the army need to be for use of TP to threatened town= +minimum threat level TP use is allowed on= +how many peons does a goblin shredder replace in lumber harvesting= +computers don't build any workers for lumber harvesting if they have more lumber than this= +computers build all needed workers for lumber harvesting if they have lumber lower than this= +does the version have neutral heroes ?= +how many neutral heroes ?= +can only heroes buy stuff ?= +what is the versions food limit ?= +units within that radius are considered belonging to the current battle= +"same as with normal_battle_radius, but for battles against creeps"= +how near a mine a enemy building must be to make amai recognize it as taken= +what is the base strength of a hero (the level number is added to get the actual strength) ?= +at what level do the heroes get their ultimates ?= +how much extra strength does the ultimate give to the hero ?= +how far away do creeps attack buildings ?= +can mercs be bought at night without waking up creeps ?= +check for towers in this radius around a target= +check for towers in this radius during harassing= +don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= +Should the buildings of the AI be destroyed on defeat or given to neutral player ?= +reform the attack group (getting new units) every that time on an attack (in seconds / 2)= +the distance of the front locations from the start location= +Does this version have heroes?= +Enable to force computers to have there fixed name instead of a profile name= +Bonus strength added to minor creep camps= +Bonus strength added to mediocre creep camps= +Bonus strength added to major creep camps= +Can turn on for debugging mode to display debug type messages= +New strategy priority must be larger than this multiple to the current strategy= +Set to true to stop amai from giving up early when it detects its going to lose= +Priority to choose the first line of hero skills= +Priority to choose the second line of hero skills= +Priority to choose the third line of hero skills= +priority added to heroes to be picked if they are favorites of the used profile= +The optimal number of peons that should be harvesting gold= +Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= +Multiplier to players strength at highest aggression to measure if amai allowed to flee= +Multipler to players strength at highest aggression to measure if amai will flee= +Aggression below this uses the lowest strength flee multiplier= +Agression above this uses the highest strength flee multiplier= + +priority for reviving hero1= +priority for reviving hero2= +priority for reviving hero3= +priority increase for building needed buildings= +priority increase in time= +priority increase in quantity= +builds another farm at the same time when this near food used to food produced= +priority for farm building= +priority for peon building= +priority for expansion building= +priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= +priority for rebuilding an expansion= +number of peons to build when 1 mine is owned= +number of peons to build when 2 mines are owned= +number of peons to build when more mines are owned= +minimum number of peons when 1 mine is owned= +minimum number of peons when 2 mines are owned= +minimum number of peons when more than 1 mine is owned= +* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= +number of strategies with highest RPs that can be chosen when changing strategy= +priority added to all strategies having a building the computer already got as a key building= +priority added to all strategies having a building the computer already started to build as key building= +priority added to all strategies having both building the computer already got as key buildings= +value for 2 of a key buildings= +priority added to all strategies having a upgrade the computer already got as key upgrade in first level= +priority added to all strategies having a upgrade the computer already got as key upgrade in second level= +priority added to all strategies having a upgrade the computer already got as key upgrade in third level= +priority added to strategies havign the current profiles favorite unit as key units.= +this race is locked to this strategy number for testing.(-1 is unlocked)= +does the race use healing fountains ?= +does the race need manual loading of wisps in goldmines ?= +What is the unit to load ?= +What unit is it loaded in ?= +does the race have a towerrush ?= +if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= +the item is build towers is must?= +"how many items at a time , if can buy"= +what is the id of the races towers?= +"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= +what is the id of the tower upgrade1 (core)?= +what is the id of the tower upgrade2 (secondary)?= +"tower can move , like ELF tree or StarCraft human build fly?"= +what is the order of tower start move? -- like use root to loc move= +what is the unorder of tower end move?= +"tower is peon become , like ELF? AI will compensate more 2 peon"= +"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= +what is the building required to build towers ?= +how high (in percent) is the probability of doing a tower rush?= +does the race have a militia expansion ?= +how many racial heroes ?= +"a basic melee unit, only necessary when basic_melee is used"= +"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= +has the race a ghoul-like wood harvester/fighter unit ?= +do those ghouls go with the army on attacks ?= +can multiple racial workers work on the same building ?= +has the race no wood harvesters ?= +should the race leave injured units at home ?= +does the race expand with a mine building like undead ?= +does the race use the goblin shredder ?= +does the race have militia ?= +how far away from the town hall are the militia allowed ?= +what is the militia unit type id?= +what is the militia ability id ?= +what is the militia ability of the hall ?= +what is the unitstring/name of the militia ?= +what is the string of the unit that can be turned to militia ?= +shall the computer only use militias against larger threats ?= +can the race expand with an uprooted building that also helps fighting the creeps ?= +how high (in percent) is the probability of doing an ancient expansion when possible ?= +up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= +the unit id of the unit that should help in ancient expansion= +can expand with item building ?= +how high (in percent) is the probability of doing a item expansion ?= +buy expand item need hall level ?= +what is expand item name(from StandardUnits.txt) ?= +does the race sell ziggurats that are at no more needed expansions ?= +keep ziggurat if this near another building except a ziggurat is= +should the race build farms towards the front (as soon as the front is computed) ?= +limit the number of farms at the front to this number= +the first that many farms will be built at the mine= +the maximum distance between the mine and the expansion building= +Racial farms have healing properties= +the bonus strength value hero must have to be able to do the tower rush= +the bonus strength value hero must have to be able to do the ancient expansion= +priority for ghoul building= +smallest number of ghouls to build at all times= +maximum number of ghouls to build in low lumber situations= +" Used to create path units, must be different from race peon"= +Building id that can house peons/units and then shoot enemies.= +// Used to trigger melee defeat conditions on surrender.= +"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= + +Strategy Function Name= +Default Name= +Default Report= +key_building1= +key_building2= +key_upgrade1= +key_upgrade2= +key_unit= +beginning_strat= +strat_minimum_time (in seconds/6)= +strategy_type= +main_strategy_tier= +base rp= +ally bonus= +1on1 bonus= +FFA bonus= +random enemy bonus= +ELF enemy bonus= +HUMAN enemy bonus= +ORC enemy bonus= +UNDEAD enemy bonus= +ELF ally bonus= +HUMAN ally bonus= +ORC ally bonus= +UNDEAD ally bonus= +anti air strength= +anti casters strength= +anti towers strength= +anti piercing strength= +anti normal strength= +anti siege strength= +anti magic strength= +anti unarmored strength= +anti lightarmor strength= +anti mediumarmor strength= +anti heavyarmor strength= +expansion time= +second expansion time= +first hero bonus= +first hero bonus amount= +second hero bonus= +second hero bonus amount= +third hero bonus= +third hero bonus amount= +enemy_ELF add agg t1= +enemy_ELF add agg t2= +enemy_ELF add agg t3= +enemy_HUMAN add agg t1= +enemy_HUMAN add agg t2= +enemy_HUMAN add agg t3= +enemy_ORC add agg t1= +enemy_ORC add agg t2= +enemy_ORC add agg t3= +enemy_UNDEAD add agg t1= +enemy_UNDEAD add agg t2= +enemy_UNDEAD add agg t3= + +Profile Name= +Race= +Aggression= +Uncertainty= +Minimum Attack Strength= +Build Farm at left food= +first expansion time= +second expansion time= +strategy persistence= +influences number of factories built= +Taunt Rate= +Expansion Target Bonus= +Hard coded AI target bonus= +Hard coded AI target rate= +Surrender Value= +Favorite ELF Hero= +Favorite HUMAN Hero= +Favorite ORC Hero= +Favorite UNDEAD Hero= +Favorite Neutral Hero= +Favorite ELF Unit= +Favorite HUMAN Unit= +Favorite ORC Unit= +Favorite UNDEAD Unit= +Rare Profile= \ No newline at end of file diff --git a/Languages/Portuguese/StrategyManager.txt b/Languages/Portuguese/StrategyManager.txt index 6a857c6fb..4fb861fbe 100644 --- a/Languages/Portuguese/StrategyManager.txt +++ b/Languages/Portuguese/StrategyManager.txt @@ -50,4 +50,275 @@ title_strategy_manager= title_profile_editor= title_strategy_editor= title_racial_builds_editor= -title_settings_editor= \ No newline at end of file +title_settings_editor= + +increases performance by checking stuff not so often= +how many computer players is needed tor the sleep multiplier to start increasing.= +how many computer players is needed tor the sleep multiplier to stop increasing.= +how much is the sleep multiplied when it's below the slm_start condition= +how much is the sleep multiplied when it's above the slm_end condition= +scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= +should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= +computers only repair buildings if they have more than this many workers= +computers only repair buildings when the town is under attack if they got more than this many workers= +Distance behind the army a zeppelin follows= +when is neutral heroes available in seconds /5= +how close to a shop do a unit have to be for buying?= +time in seconds the hero goes to a shop before it gives up if it haven't reached it= +time in seconds a hero tries to buy items at shop before giving up= +"every this * 5 seconds, the build array is reset"= +normalizing strategy priorities added from strengths with this value= +the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= +strategy when attacking enemy players= +"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= +Distance from ranged units enemy units can be targeted with focus fire= +Distance from melee units enemy units can be targeted with focus fire= +Units flee from battle if the health goes below his % value(0.25 is 25%)= +Units flee from battle if the health goes below this= +how near the units a statue used by undead should be in the fights= +units will stay within this radius from a hero that is using town portal= +computers give extra gold above this value to other computers on the same team in need of gold= +computers give extra lumber above this value to other computers on the same team in need of lumber= +how many towns is a computer allowed to have?= +Add the [AMAI] tag in front of name= +Add the current skill after the name= +how many different harass groups you can use= +"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= +the radius araound a mine computers check for creeps before expanding there= +how far away from ranged enemy units harassing units attack a inferior enemy unit= +how far away from melee enemy units harassing units attack a inferior enemy unit= +how far away from ranged enemy units harassing units turn and flee= +how far away from melee enemy units harassing units turn and flee= +computers use chat taunts= +a enemy army within this distance is counted as a full threat= +a enemy army outside this distance is counted as no threat= +how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= +"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= +accepted threat level increase starts at this time= +and ends at that time= +it starts with this value= +and ends with that value= +accepted threat level multiplier increases at that enemy number= +until that enemy number= +the multiplier starts for accepted threat level starts with this= +and ends with this= +Army uses TP to get home and defend if a threat is greater than this= +Army uses TP to get home and defend if a threat is greater than this= +Army won't use TP home if they are closer to base than this and a low threat level appears= +Army won't use TP home if they are closer to base than this and a high threat level appears= +how big the army need to be for use of TP to threatened town= +minimum threat level TP use is allowed on= +how many peons does a goblin shredder replace in lumber harvesting= +computers don't build any workers for lumber harvesting if they have more lumber than this= +computers build all needed workers for lumber harvesting if they have lumber lower than this= +does the version have neutral heroes ?= +how many neutral heroes ?= +can only heroes buy stuff ?= +what is the versions food limit ?= +units within that radius are considered belonging to the current battle= +"same as with normal_battle_radius, but for battles against creeps"= +how near a mine a enemy building must be to make amai recognize it as taken= +what is the base strength of a hero (the level number is added to get the actual strength) ?= +at what level do the heroes get their ultimates ?= +how much extra strength does the ultimate give to the hero ?= +how far away do creeps attack buildings ?= +can mercs be bought at night without waking up creeps ?= +check for towers in this radius around a target= +check for towers in this radius during harassing= +don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= +Should the buildings of the AI be destroyed on defeat or given to neutral player ?= +reform the attack group (getting new units) every that time on an attack (in seconds / 2)= +the distance of the front locations from the start location= +Does this version have heroes?= +Enable to force computers to have there fixed name instead of a profile name= +Bonus strength added to minor creep camps= +Bonus strength added to mediocre creep camps= +Bonus strength added to major creep camps= +Can turn on for debugging mode to display debug type messages= +New strategy priority must be larger than this multiple to the current strategy= +Set to true to stop amai from giving up early when it detects its going to lose= +Priority to choose the first line of hero skills= +Priority to choose the second line of hero skills= +Priority to choose the third line of hero skills= +priority added to heroes to be picked if they are favorites of the used profile= +The optimal number of peons that should be harvesting gold= +Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= +Multiplier to players strength at highest aggression to measure if amai allowed to flee= +Multipler to players strength at highest aggression to measure if amai will flee= +Aggression below this uses the lowest strength flee multiplier= +Agression above this uses the highest strength flee multiplier= + +priority for reviving hero1= +priority for reviving hero2= +priority for reviving hero3= +priority increase for building needed buildings= +priority increase in time= +priority increase in quantity= +builds another farm at the same time when this near food used to food produced= +priority for farm building= +priority for peon building= +priority for expansion building= +priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= +priority for rebuilding an expansion= +number of peons to build when 1 mine is owned= +number of peons to build when 2 mines are owned= +number of peons to build when more mines are owned= +minimum number of peons when 1 mine is owned= +minimum number of peons when 2 mines are owned= +minimum number of peons when more than 1 mine is owned= +* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= +number of strategies with highest RPs that can be chosen when changing strategy= +priority added to all strategies having a building the computer already got as a key building= +priority added to all strategies having a building the computer already started to build as key building= +priority added to all strategies having both building the computer already got as key buildings= +value for 2 of a key buildings= +priority added to all strategies having a upgrade the computer already got as key upgrade in first level= +priority added to all strategies having a upgrade the computer already got as key upgrade in second level= +priority added to all strategies having a upgrade the computer already got as key upgrade in third level= +priority added to strategies havign the current profiles favorite unit as key units.= +this race is locked to this strategy number for testing.(-1 is unlocked)= +does the race use healing fountains ?= +does the race need manual loading of wisps in goldmines ?= +What is the unit to load ?= +What unit is it loaded in ?= +does the race have a towerrush ?= +if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= +the item is build towers is must?= +"how many items at a time , if can buy"= +what is the id of the races towers?= +"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= +what is the id of the tower upgrade1 (core)?= +what is the id of the tower upgrade2 (secondary)?= +"tower can move , like ELF tree or StarCraft human build fly?"= +what is the order of tower start move? -- like use root to loc move= +what is the unorder of tower end move?= +"tower is peon become , like ELF? AI will compensate more 2 peon"= +"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= +what is the building required to build towers ?= +how high (in percent) is the probability of doing a tower rush?= +does the race have a militia expansion ?= +how many racial heroes ?= +"a basic melee unit, only necessary when basic_melee is used"= +"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= +has the race a ghoul-like wood harvester/fighter unit ?= +do those ghouls go with the army on attacks ?= +can multiple racial workers work on the same building ?= +has the race no wood harvesters ?= +should the race leave injured units at home ?= +does the race expand with a mine building like undead ?= +does the race use the goblin shredder ?= +does the race have militia ?= +how far away from the town hall are the militia allowed ?= +what is the militia unit type id?= +what is the militia ability id ?= +what is the militia ability of the hall ?= +what is the unitstring/name of the militia ?= +what is the string of the unit that can be turned to militia ?= +shall the computer only use militias against larger threats ?= +can the race expand with an uprooted building that also helps fighting the creeps ?= +how high (in percent) is the probability of doing an ancient expansion when possible ?= +up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= +the unit id of the unit that should help in ancient expansion= +can expand with item building ?= +how high (in percent) is the probability of doing a item expansion ?= +buy expand item need hall level ?= +what is expand item name(from StandardUnits.txt) ?= +does the race sell ziggurats that are at no more needed expansions ?= +keep ziggurat if this near another building except a ziggurat is= +should the race build farms towards the front (as soon as the front is computed) ?= +limit the number of farms at the front to this number= +the first that many farms will be built at the mine= +the maximum distance between the mine and the expansion building= +Racial farms have healing properties= +the bonus strength value hero must have to be able to do the tower rush= +the bonus strength value hero must have to be able to do the ancient expansion= +priority for ghoul building= +smallest number of ghouls to build at all times= +maximum number of ghouls to build in low lumber situations= +" Used to create path units, must be different from race peon"= +Building id that can house peons/units and then shoot enemies.= +// Used to trigger melee defeat conditions on surrender.= +"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= + +Strategy Function Name= +Default Name= +Default Report= +key_building1= +key_building2= +key_upgrade1= +key_upgrade2= +key_unit= +beginning_strat= +strat_minimum_time (in seconds/6)= +strategy_type= +main_strategy_tier= +base rp= +ally bonus= +1on1 bonus= +FFA bonus= +random enemy bonus= +ELF enemy bonus= +HUMAN enemy bonus= +ORC enemy bonus= +UNDEAD enemy bonus= +ELF ally bonus= +HUMAN ally bonus= +ORC ally bonus= +UNDEAD ally bonus= +anti air strength= +anti casters strength= +anti towers strength= +anti piercing strength= +anti normal strength= +anti siege strength= +anti magic strength= +anti unarmored strength= +anti lightarmor strength= +anti mediumarmor strength= +anti heavyarmor strength= +expansion time= +second expansion time= +first hero bonus= +first hero bonus amount= +second hero bonus= +second hero bonus amount= +third hero bonus= +third hero bonus amount= +enemy_ELF add agg t1= +enemy_ELF add agg t2= +enemy_ELF add agg t3= +enemy_HUMAN add agg t1= +enemy_HUMAN add agg t2= +enemy_HUMAN add agg t3= +enemy_ORC add agg t1= +enemy_ORC add agg t2= +enemy_ORC add agg t3= +enemy_UNDEAD add agg t1= +enemy_UNDEAD add agg t2= +enemy_UNDEAD add agg t3= + +Profile Name= +Race= +Aggression= +Uncertainty= +Minimum Attack Strength= +Build Farm at left food= +first expansion time= +second expansion time= +strategy persistence= +influences number of factories built= +Taunt Rate= +Expansion Target Bonus= +Hard coded AI target bonus= +Hard coded AI target rate= +Surrender Value= +Favorite ELF Hero= +Favorite HUMAN Hero= +Favorite ORC Hero= +Favorite UNDEAD Hero= +Favorite Neutral Hero= +Favorite ELF Unit= +Favorite HUMAN Unit= +Favorite ORC Unit= +Favorite UNDEAD Unit= +Rare Profile= \ No newline at end of file diff --git a/Languages/Romanian/StrategyManager.txt b/Languages/Romanian/StrategyManager.txt index 6a857c6fb..4fb861fbe 100644 --- a/Languages/Romanian/StrategyManager.txt +++ b/Languages/Romanian/StrategyManager.txt @@ -50,4 +50,275 @@ title_strategy_manager= title_profile_editor= title_strategy_editor= title_racial_builds_editor= -title_settings_editor= \ No newline at end of file +title_settings_editor= + +increases performance by checking stuff not so often= +how many computer players is needed tor the sleep multiplier to start increasing.= +how many computer players is needed tor the sleep multiplier to stop increasing.= +how much is the sleep multiplied when it's below the slm_start condition= +how much is the sleep multiplied when it's above the slm_end condition= +scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= +should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= +computers only repair buildings if they have more than this many workers= +computers only repair buildings when the town is under attack if they got more than this many workers= +Distance behind the army a zeppelin follows= +when is neutral heroes available in seconds /5= +how close to a shop do a unit have to be for buying?= +time in seconds the hero goes to a shop before it gives up if it haven't reached it= +time in seconds a hero tries to buy items at shop before giving up= +"every this * 5 seconds, the build array is reset"= +normalizing strategy priorities added from strengths with this value= +the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= +strategy when attacking enemy players= +"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= +Distance from ranged units enemy units can be targeted with focus fire= +Distance from melee units enemy units can be targeted with focus fire= +Units flee from battle if the health goes below his % value(0.25 is 25%)= +Units flee from battle if the health goes below this= +how near the units a statue used by undead should be in the fights= +units will stay within this radius from a hero that is using town portal= +computers give extra gold above this value to other computers on the same team in need of gold= +computers give extra lumber above this value to other computers on the same team in need of lumber= +how many towns is a computer allowed to have?= +Add the [AMAI] tag in front of name= +Add the current skill after the name= +how many different harass groups you can use= +"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= +the radius araound a mine computers check for creeps before expanding there= +how far away from ranged enemy units harassing units attack a inferior enemy unit= +how far away from melee enemy units harassing units attack a inferior enemy unit= +how far away from ranged enemy units harassing units turn and flee= +how far away from melee enemy units harassing units turn and flee= +computers use chat taunts= +a enemy army within this distance is counted as a full threat= +a enemy army outside this distance is counted as no threat= +how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= +"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= +accepted threat level increase starts at this time= +and ends at that time= +it starts with this value= +and ends with that value= +accepted threat level multiplier increases at that enemy number= +until that enemy number= +the multiplier starts for accepted threat level starts with this= +and ends with this= +Army uses TP to get home and defend if a threat is greater than this= +Army uses TP to get home and defend if a threat is greater than this= +Army won't use TP home if they are closer to base than this and a low threat level appears= +Army won't use TP home if they are closer to base than this and a high threat level appears= +how big the army need to be for use of TP to threatened town= +minimum threat level TP use is allowed on= +how many peons does a goblin shredder replace in lumber harvesting= +computers don't build any workers for lumber harvesting if they have more lumber than this= +computers build all needed workers for lumber harvesting if they have lumber lower than this= +does the version have neutral heroes ?= +how many neutral heroes ?= +can only heroes buy stuff ?= +what is the versions food limit ?= +units within that radius are considered belonging to the current battle= +"same as with normal_battle_radius, but for battles against creeps"= +how near a mine a enemy building must be to make amai recognize it as taken= +what is the base strength of a hero (the level number is added to get the actual strength) ?= +at what level do the heroes get their ultimates ?= +how much extra strength does the ultimate give to the hero ?= +how far away do creeps attack buildings ?= +can mercs be bought at night without waking up creeps ?= +check for towers in this radius around a target= +check for towers in this radius during harassing= +don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= +Should the buildings of the AI be destroyed on defeat or given to neutral player ?= +reform the attack group (getting new units) every that time on an attack (in seconds / 2)= +the distance of the front locations from the start location= +Does this version have heroes?= +Enable to force computers to have there fixed name instead of a profile name= +Bonus strength added to minor creep camps= +Bonus strength added to mediocre creep camps= +Bonus strength added to major creep camps= +Can turn on for debugging mode to display debug type messages= +New strategy priority must be larger than this multiple to the current strategy= +Set to true to stop amai from giving up early when it detects its going to lose= +Priority to choose the first line of hero skills= +Priority to choose the second line of hero skills= +Priority to choose the third line of hero skills= +priority added to heroes to be picked if they are favorites of the used profile= +The optimal number of peons that should be harvesting gold= +Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= +Multiplier to players strength at highest aggression to measure if amai allowed to flee= +Multipler to players strength at highest aggression to measure if amai will flee= +Aggression below this uses the lowest strength flee multiplier= +Agression above this uses the highest strength flee multiplier= + +priority for reviving hero1= +priority for reviving hero2= +priority for reviving hero3= +priority increase for building needed buildings= +priority increase in time= +priority increase in quantity= +builds another farm at the same time when this near food used to food produced= +priority for farm building= +priority for peon building= +priority for expansion building= +priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= +priority for rebuilding an expansion= +number of peons to build when 1 mine is owned= +number of peons to build when 2 mines are owned= +number of peons to build when more mines are owned= +minimum number of peons when 1 mine is owned= +minimum number of peons when 2 mines are owned= +minimum number of peons when more than 1 mine is owned= +* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= +number of strategies with highest RPs that can be chosen when changing strategy= +priority added to all strategies having a building the computer already got as a key building= +priority added to all strategies having a building the computer already started to build as key building= +priority added to all strategies having both building the computer already got as key buildings= +value for 2 of a key buildings= +priority added to all strategies having a upgrade the computer already got as key upgrade in first level= +priority added to all strategies having a upgrade the computer already got as key upgrade in second level= +priority added to all strategies having a upgrade the computer already got as key upgrade in third level= +priority added to strategies havign the current profiles favorite unit as key units.= +this race is locked to this strategy number for testing.(-1 is unlocked)= +does the race use healing fountains ?= +does the race need manual loading of wisps in goldmines ?= +What is the unit to load ?= +What unit is it loaded in ?= +does the race have a towerrush ?= +if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= +the item is build towers is must?= +"how many items at a time , if can buy"= +what is the id of the races towers?= +"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= +what is the id of the tower upgrade1 (core)?= +what is the id of the tower upgrade2 (secondary)?= +"tower can move , like ELF tree or StarCraft human build fly?"= +what is the order of tower start move? -- like use root to loc move= +what is the unorder of tower end move?= +"tower is peon become , like ELF? AI will compensate more 2 peon"= +"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= +what is the building required to build towers ?= +how high (in percent) is the probability of doing a tower rush?= +does the race have a militia expansion ?= +how many racial heroes ?= +"a basic melee unit, only necessary when basic_melee is used"= +"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= +has the race a ghoul-like wood harvester/fighter unit ?= +do those ghouls go with the army on attacks ?= +can multiple racial workers work on the same building ?= +has the race no wood harvesters ?= +should the race leave injured units at home ?= +does the race expand with a mine building like undead ?= +does the race use the goblin shredder ?= +does the race have militia ?= +how far away from the town hall are the militia allowed ?= +what is the militia unit type id?= +what is the militia ability id ?= +what is the militia ability of the hall ?= +what is the unitstring/name of the militia ?= +what is the string of the unit that can be turned to militia ?= +shall the computer only use militias against larger threats ?= +can the race expand with an uprooted building that also helps fighting the creeps ?= +how high (in percent) is the probability of doing an ancient expansion when possible ?= +up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= +the unit id of the unit that should help in ancient expansion= +can expand with item building ?= +how high (in percent) is the probability of doing a item expansion ?= +buy expand item need hall level ?= +what is expand item name(from StandardUnits.txt) ?= +does the race sell ziggurats that are at no more needed expansions ?= +keep ziggurat if this near another building except a ziggurat is= +should the race build farms towards the front (as soon as the front is computed) ?= +limit the number of farms at the front to this number= +the first that many farms will be built at the mine= +the maximum distance between the mine and the expansion building= +Racial farms have healing properties= +the bonus strength value hero must have to be able to do the tower rush= +the bonus strength value hero must have to be able to do the ancient expansion= +priority for ghoul building= +smallest number of ghouls to build at all times= +maximum number of ghouls to build in low lumber situations= +" Used to create path units, must be different from race peon"= +Building id that can house peons/units and then shoot enemies.= +// Used to trigger melee defeat conditions on surrender.= +"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= + +Strategy Function Name= +Default Name= +Default Report= +key_building1= +key_building2= +key_upgrade1= +key_upgrade2= +key_unit= +beginning_strat= +strat_minimum_time (in seconds/6)= +strategy_type= +main_strategy_tier= +base rp= +ally bonus= +1on1 bonus= +FFA bonus= +random enemy bonus= +ELF enemy bonus= +HUMAN enemy bonus= +ORC enemy bonus= +UNDEAD enemy bonus= +ELF ally bonus= +HUMAN ally bonus= +ORC ally bonus= +UNDEAD ally bonus= +anti air strength= +anti casters strength= +anti towers strength= +anti piercing strength= +anti normal strength= +anti siege strength= +anti magic strength= +anti unarmored strength= +anti lightarmor strength= +anti mediumarmor strength= +anti heavyarmor strength= +expansion time= +second expansion time= +first hero bonus= +first hero bonus amount= +second hero bonus= +second hero bonus amount= +third hero bonus= +third hero bonus amount= +enemy_ELF add agg t1= +enemy_ELF add agg t2= +enemy_ELF add agg t3= +enemy_HUMAN add agg t1= +enemy_HUMAN add agg t2= +enemy_HUMAN add agg t3= +enemy_ORC add agg t1= +enemy_ORC add agg t2= +enemy_ORC add agg t3= +enemy_UNDEAD add agg t1= +enemy_UNDEAD add agg t2= +enemy_UNDEAD add agg t3= + +Profile Name= +Race= +Aggression= +Uncertainty= +Minimum Attack Strength= +Build Farm at left food= +first expansion time= +second expansion time= +strategy persistence= +influences number of factories built= +Taunt Rate= +Expansion Target Bonus= +Hard coded AI target bonus= +Hard coded AI target rate= +Surrender Value= +Favorite ELF Hero= +Favorite HUMAN Hero= +Favorite ORC Hero= +Favorite UNDEAD Hero= +Favorite Neutral Hero= +Favorite ELF Unit= +Favorite HUMAN Unit= +Favorite ORC Unit= +Favorite UNDEAD Unit= +Rare Profile= \ No newline at end of file diff --git a/Languages/Russian/StrategyManager.txt b/Languages/Russian/StrategyManager.txt index 6a857c6fb..4fb861fbe 100644 --- a/Languages/Russian/StrategyManager.txt +++ b/Languages/Russian/StrategyManager.txt @@ -50,4 +50,275 @@ title_strategy_manager= title_profile_editor= title_strategy_editor= title_racial_builds_editor= -title_settings_editor= \ No newline at end of file +title_settings_editor= + +increases performance by checking stuff not so often= +how many computer players is needed tor the sleep multiplier to start increasing.= +how many computer players is needed tor the sleep multiplier to stop increasing.= +how much is the sleep multiplied when it's below the slm_start condition= +how much is the sleep multiplied when it's above the slm_end condition= +scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= +should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= +computers only repair buildings if they have more than this many workers= +computers only repair buildings when the town is under attack if they got more than this many workers= +Distance behind the army a zeppelin follows= +when is neutral heroes available in seconds /5= +how close to a shop do a unit have to be for buying?= +time in seconds the hero goes to a shop before it gives up if it haven't reached it= +time in seconds a hero tries to buy items at shop before giving up= +"every this * 5 seconds, the build array is reset"= +normalizing strategy priorities added from strengths with this value= +the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= +strategy when attacking enemy players= +"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= +Distance from ranged units enemy units can be targeted with focus fire= +Distance from melee units enemy units can be targeted with focus fire= +Units flee from battle if the health goes below his % value(0.25 is 25%)= +Units flee from battle if the health goes below this= +how near the units a statue used by undead should be in the fights= +units will stay within this radius from a hero that is using town portal= +computers give extra gold above this value to other computers on the same team in need of gold= +computers give extra lumber above this value to other computers on the same team in need of lumber= +how many towns is a computer allowed to have?= +Add the [AMAI] tag in front of name= +Add the current skill after the name= +how many different harass groups you can use= +"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= +the radius araound a mine computers check for creeps before expanding there= +how far away from ranged enemy units harassing units attack a inferior enemy unit= +how far away from melee enemy units harassing units attack a inferior enemy unit= +how far away from ranged enemy units harassing units turn and flee= +how far away from melee enemy units harassing units turn and flee= +computers use chat taunts= +a enemy army within this distance is counted as a full threat= +a enemy army outside this distance is counted as no threat= +how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= +"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= +accepted threat level increase starts at this time= +and ends at that time= +it starts with this value= +and ends with that value= +accepted threat level multiplier increases at that enemy number= +until that enemy number= +the multiplier starts for accepted threat level starts with this= +and ends with this= +Army uses TP to get home and defend if a threat is greater than this= +Army uses TP to get home and defend if a threat is greater than this= +Army won't use TP home if they are closer to base than this and a low threat level appears= +Army won't use TP home if they are closer to base than this and a high threat level appears= +how big the army need to be for use of TP to threatened town= +minimum threat level TP use is allowed on= +how many peons does a goblin shredder replace in lumber harvesting= +computers don't build any workers for lumber harvesting if they have more lumber than this= +computers build all needed workers for lumber harvesting if they have lumber lower than this= +does the version have neutral heroes ?= +how many neutral heroes ?= +can only heroes buy stuff ?= +what is the versions food limit ?= +units within that radius are considered belonging to the current battle= +"same as with normal_battle_radius, but for battles against creeps"= +how near a mine a enemy building must be to make amai recognize it as taken= +what is the base strength of a hero (the level number is added to get the actual strength) ?= +at what level do the heroes get their ultimates ?= +how much extra strength does the ultimate give to the hero ?= +how far away do creeps attack buildings ?= +can mercs be bought at night without waking up creeps ?= +check for towers in this radius around a target= +check for towers in this radius during harassing= +don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= +Should the buildings of the AI be destroyed on defeat or given to neutral player ?= +reform the attack group (getting new units) every that time on an attack (in seconds / 2)= +the distance of the front locations from the start location= +Does this version have heroes?= +Enable to force computers to have there fixed name instead of a profile name= +Bonus strength added to minor creep camps= +Bonus strength added to mediocre creep camps= +Bonus strength added to major creep camps= +Can turn on for debugging mode to display debug type messages= +New strategy priority must be larger than this multiple to the current strategy= +Set to true to stop amai from giving up early when it detects its going to lose= +Priority to choose the first line of hero skills= +Priority to choose the second line of hero skills= +Priority to choose the third line of hero skills= +priority added to heroes to be picked if they are favorites of the used profile= +The optimal number of peons that should be harvesting gold= +Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= +Multiplier to players strength at highest aggression to measure if amai allowed to flee= +Multipler to players strength at highest aggression to measure if amai will flee= +Aggression below this uses the lowest strength flee multiplier= +Agression above this uses the highest strength flee multiplier= + +priority for reviving hero1= +priority for reviving hero2= +priority for reviving hero3= +priority increase for building needed buildings= +priority increase in time= +priority increase in quantity= +builds another farm at the same time when this near food used to food produced= +priority for farm building= +priority for peon building= +priority for expansion building= +priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= +priority for rebuilding an expansion= +number of peons to build when 1 mine is owned= +number of peons to build when 2 mines are owned= +number of peons to build when more mines are owned= +minimum number of peons when 1 mine is owned= +minimum number of peons when 2 mines are owned= +minimum number of peons when more than 1 mine is owned= +* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= +number of strategies with highest RPs that can be chosen when changing strategy= +priority added to all strategies having a building the computer already got as a key building= +priority added to all strategies having a building the computer already started to build as key building= +priority added to all strategies having both building the computer already got as key buildings= +value for 2 of a key buildings= +priority added to all strategies having a upgrade the computer already got as key upgrade in first level= +priority added to all strategies having a upgrade the computer already got as key upgrade in second level= +priority added to all strategies having a upgrade the computer already got as key upgrade in third level= +priority added to strategies havign the current profiles favorite unit as key units.= +this race is locked to this strategy number for testing.(-1 is unlocked)= +does the race use healing fountains ?= +does the race need manual loading of wisps in goldmines ?= +What is the unit to load ?= +What unit is it loaded in ?= +does the race have a towerrush ?= +if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= +the item is build towers is must?= +"how many items at a time , if can buy"= +what is the id of the races towers?= +"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= +what is the id of the tower upgrade1 (core)?= +what is the id of the tower upgrade2 (secondary)?= +"tower can move , like ELF tree or StarCraft human build fly?"= +what is the order of tower start move? -- like use root to loc move= +what is the unorder of tower end move?= +"tower is peon become , like ELF? AI will compensate more 2 peon"= +"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= +what is the building required to build towers ?= +how high (in percent) is the probability of doing a tower rush?= +does the race have a militia expansion ?= +how many racial heroes ?= +"a basic melee unit, only necessary when basic_melee is used"= +"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= +has the race a ghoul-like wood harvester/fighter unit ?= +do those ghouls go with the army on attacks ?= +can multiple racial workers work on the same building ?= +has the race no wood harvesters ?= +should the race leave injured units at home ?= +does the race expand with a mine building like undead ?= +does the race use the goblin shredder ?= +does the race have militia ?= +how far away from the town hall are the militia allowed ?= +what is the militia unit type id?= +what is the militia ability id ?= +what is the militia ability of the hall ?= +what is the unitstring/name of the militia ?= +what is the string of the unit that can be turned to militia ?= +shall the computer only use militias against larger threats ?= +can the race expand with an uprooted building that also helps fighting the creeps ?= +how high (in percent) is the probability of doing an ancient expansion when possible ?= +up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= +the unit id of the unit that should help in ancient expansion= +can expand with item building ?= +how high (in percent) is the probability of doing a item expansion ?= +buy expand item need hall level ?= +what is expand item name(from StandardUnits.txt) ?= +does the race sell ziggurats that are at no more needed expansions ?= +keep ziggurat if this near another building except a ziggurat is= +should the race build farms towards the front (as soon as the front is computed) ?= +limit the number of farms at the front to this number= +the first that many farms will be built at the mine= +the maximum distance between the mine and the expansion building= +Racial farms have healing properties= +the bonus strength value hero must have to be able to do the tower rush= +the bonus strength value hero must have to be able to do the ancient expansion= +priority for ghoul building= +smallest number of ghouls to build at all times= +maximum number of ghouls to build in low lumber situations= +" Used to create path units, must be different from race peon"= +Building id that can house peons/units and then shoot enemies.= +// Used to trigger melee defeat conditions on surrender.= +"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= + +Strategy Function Name= +Default Name= +Default Report= +key_building1= +key_building2= +key_upgrade1= +key_upgrade2= +key_unit= +beginning_strat= +strat_minimum_time (in seconds/6)= +strategy_type= +main_strategy_tier= +base rp= +ally bonus= +1on1 bonus= +FFA bonus= +random enemy bonus= +ELF enemy bonus= +HUMAN enemy bonus= +ORC enemy bonus= +UNDEAD enemy bonus= +ELF ally bonus= +HUMAN ally bonus= +ORC ally bonus= +UNDEAD ally bonus= +anti air strength= +anti casters strength= +anti towers strength= +anti piercing strength= +anti normal strength= +anti siege strength= +anti magic strength= +anti unarmored strength= +anti lightarmor strength= +anti mediumarmor strength= +anti heavyarmor strength= +expansion time= +second expansion time= +first hero bonus= +first hero bonus amount= +second hero bonus= +second hero bonus amount= +third hero bonus= +third hero bonus amount= +enemy_ELF add agg t1= +enemy_ELF add agg t2= +enemy_ELF add agg t3= +enemy_HUMAN add agg t1= +enemy_HUMAN add agg t2= +enemy_HUMAN add agg t3= +enemy_ORC add agg t1= +enemy_ORC add agg t2= +enemy_ORC add agg t3= +enemy_UNDEAD add agg t1= +enemy_UNDEAD add agg t2= +enemy_UNDEAD add agg t3= + +Profile Name= +Race= +Aggression= +Uncertainty= +Minimum Attack Strength= +Build Farm at left food= +first expansion time= +second expansion time= +strategy persistence= +influences number of factories built= +Taunt Rate= +Expansion Target Bonus= +Hard coded AI target bonus= +Hard coded AI target rate= +Surrender Value= +Favorite ELF Hero= +Favorite HUMAN Hero= +Favorite ORC Hero= +Favorite UNDEAD Hero= +Favorite Neutral Hero= +Favorite ELF Unit= +Favorite HUMAN Unit= +Favorite ORC Unit= +Favorite UNDEAD Unit= +Rare Profile= \ No newline at end of file diff --git a/Languages/Spanish/StrategyManager.txt b/Languages/Spanish/StrategyManager.txt index 6a857c6fb..4fb861fbe 100644 --- a/Languages/Spanish/StrategyManager.txt +++ b/Languages/Spanish/StrategyManager.txt @@ -50,4 +50,275 @@ title_strategy_manager= title_profile_editor= title_strategy_editor= title_racial_builds_editor= -title_settings_editor= \ No newline at end of file +title_settings_editor= + +increases performance by checking stuff not so often= +how many computer players is needed tor the sleep multiplier to start increasing.= +how many computer players is needed tor the sleep multiplier to stop increasing.= +how much is the sleep multiplied when it's below the slm_start condition= +how much is the sleep multiplied when it's above the slm_end condition= +scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= +should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= +computers only repair buildings if they have more than this many workers= +computers only repair buildings when the town is under attack if they got more than this many workers= +Distance behind the army a zeppelin follows= +when is neutral heroes available in seconds /5= +how close to a shop do a unit have to be for buying?= +time in seconds the hero goes to a shop before it gives up if it haven't reached it= +time in seconds a hero tries to buy items at shop before giving up= +"every this * 5 seconds, the build array is reset"= +normalizing strategy priorities added from strengths with this value= +the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= +strategy when attacking enemy players= +"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= +Distance from ranged units enemy units can be targeted with focus fire= +Distance from melee units enemy units can be targeted with focus fire= +Units flee from battle if the health goes below his % value(0.25 is 25%)= +Units flee from battle if the health goes below this= +how near the units a statue used by undead should be in the fights= +units will stay within this radius from a hero that is using town portal= +computers give extra gold above this value to other computers on the same team in need of gold= +computers give extra lumber above this value to other computers on the same team in need of lumber= +how many towns is a computer allowed to have?= +Add the [AMAI] tag in front of name= +Add the current skill after the name= +how many different harass groups you can use= +"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= +the radius araound a mine computers check for creeps before expanding there= +how far away from ranged enemy units harassing units attack a inferior enemy unit= +how far away from melee enemy units harassing units attack a inferior enemy unit= +how far away from ranged enemy units harassing units turn and flee= +how far away from melee enemy units harassing units turn and flee= +computers use chat taunts= +a enemy army within this distance is counted as a full threat= +a enemy army outside this distance is counted as no threat= +how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= +"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= +accepted threat level increase starts at this time= +and ends at that time= +it starts with this value= +and ends with that value= +accepted threat level multiplier increases at that enemy number= +until that enemy number= +the multiplier starts for accepted threat level starts with this= +and ends with this= +Army uses TP to get home and defend if a threat is greater than this= +Army uses TP to get home and defend if a threat is greater than this= +Army won't use TP home if they are closer to base than this and a low threat level appears= +Army won't use TP home if they are closer to base than this and a high threat level appears= +how big the army need to be for use of TP to threatened town= +minimum threat level TP use is allowed on= +how many peons does a goblin shredder replace in lumber harvesting= +computers don't build any workers for lumber harvesting if they have more lumber than this= +computers build all needed workers for lumber harvesting if they have lumber lower than this= +does the version have neutral heroes ?= +how many neutral heroes ?= +can only heroes buy stuff ?= +what is the versions food limit ?= +units within that radius are considered belonging to the current battle= +"same as with normal_battle_radius, but for battles against creeps"= +how near a mine a enemy building must be to make amai recognize it as taken= +what is the base strength of a hero (the level number is added to get the actual strength) ?= +at what level do the heroes get their ultimates ?= +how much extra strength does the ultimate give to the hero ?= +how far away do creeps attack buildings ?= +can mercs be bought at night without waking up creeps ?= +check for towers in this radius around a target= +check for towers in this radius during harassing= +don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= +Should the buildings of the AI be destroyed on defeat or given to neutral player ?= +reform the attack group (getting new units) every that time on an attack (in seconds / 2)= +the distance of the front locations from the start location= +Does this version have heroes?= +Enable to force computers to have there fixed name instead of a profile name= +Bonus strength added to minor creep camps= +Bonus strength added to mediocre creep camps= +Bonus strength added to major creep camps= +Can turn on for debugging mode to display debug type messages= +New strategy priority must be larger than this multiple to the current strategy= +Set to true to stop amai from giving up early when it detects its going to lose= +Priority to choose the first line of hero skills= +Priority to choose the second line of hero skills= +Priority to choose the third line of hero skills= +priority added to heroes to be picked if they are favorites of the used profile= +The optimal number of peons that should be harvesting gold= +Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= +Multiplier to players strength at highest aggression to measure if amai allowed to flee= +Multipler to players strength at highest aggression to measure if amai will flee= +Aggression below this uses the lowest strength flee multiplier= +Agression above this uses the highest strength flee multiplier= + +priority for reviving hero1= +priority for reviving hero2= +priority for reviving hero3= +priority increase for building needed buildings= +priority increase in time= +priority increase in quantity= +builds another farm at the same time when this near food used to food produced= +priority for farm building= +priority for peon building= +priority for expansion building= +priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= +priority for rebuilding an expansion= +number of peons to build when 1 mine is owned= +number of peons to build when 2 mines are owned= +number of peons to build when more mines are owned= +minimum number of peons when 1 mine is owned= +minimum number of peons when 2 mines are owned= +minimum number of peons when more than 1 mine is owned= +* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= +number of strategies with highest RPs that can be chosen when changing strategy= +priority added to all strategies having a building the computer already got as a key building= +priority added to all strategies having a building the computer already started to build as key building= +priority added to all strategies having both building the computer already got as key buildings= +value for 2 of a key buildings= +priority added to all strategies having a upgrade the computer already got as key upgrade in first level= +priority added to all strategies having a upgrade the computer already got as key upgrade in second level= +priority added to all strategies having a upgrade the computer already got as key upgrade in third level= +priority added to strategies havign the current profiles favorite unit as key units.= +this race is locked to this strategy number for testing.(-1 is unlocked)= +does the race use healing fountains ?= +does the race need manual loading of wisps in goldmines ?= +What is the unit to load ?= +What unit is it loaded in ?= +does the race have a towerrush ?= +if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= +the item is build towers is must?= +"how many items at a time , if can buy"= +what is the id of the races towers?= +"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= +what is the id of the tower upgrade1 (core)?= +what is the id of the tower upgrade2 (secondary)?= +"tower can move , like ELF tree or StarCraft human build fly?"= +what is the order of tower start move? -- like use root to loc move= +what is the unorder of tower end move?= +"tower is peon become , like ELF? AI will compensate more 2 peon"= +"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= +what is the building required to build towers ?= +how high (in percent) is the probability of doing a tower rush?= +does the race have a militia expansion ?= +how many racial heroes ?= +"a basic melee unit, only necessary when basic_melee is used"= +"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= +has the race a ghoul-like wood harvester/fighter unit ?= +do those ghouls go with the army on attacks ?= +can multiple racial workers work on the same building ?= +has the race no wood harvesters ?= +should the race leave injured units at home ?= +does the race expand with a mine building like undead ?= +does the race use the goblin shredder ?= +does the race have militia ?= +how far away from the town hall are the militia allowed ?= +what is the militia unit type id?= +what is the militia ability id ?= +what is the militia ability of the hall ?= +what is the unitstring/name of the militia ?= +what is the string of the unit that can be turned to militia ?= +shall the computer only use militias against larger threats ?= +can the race expand with an uprooted building that also helps fighting the creeps ?= +how high (in percent) is the probability of doing an ancient expansion when possible ?= +up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= +the unit id of the unit that should help in ancient expansion= +can expand with item building ?= +how high (in percent) is the probability of doing a item expansion ?= +buy expand item need hall level ?= +what is expand item name(from StandardUnits.txt) ?= +does the race sell ziggurats that are at no more needed expansions ?= +keep ziggurat if this near another building except a ziggurat is= +should the race build farms towards the front (as soon as the front is computed) ?= +limit the number of farms at the front to this number= +the first that many farms will be built at the mine= +the maximum distance between the mine and the expansion building= +Racial farms have healing properties= +the bonus strength value hero must have to be able to do the tower rush= +the bonus strength value hero must have to be able to do the ancient expansion= +priority for ghoul building= +smallest number of ghouls to build at all times= +maximum number of ghouls to build in low lumber situations= +" Used to create path units, must be different from race peon"= +Building id that can house peons/units and then shoot enemies.= +// Used to trigger melee defeat conditions on surrender.= +"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= + +Strategy Function Name= +Default Name= +Default Report= +key_building1= +key_building2= +key_upgrade1= +key_upgrade2= +key_unit= +beginning_strat= +strat_minimum_time (in seconds/6)= +strategy_type= +main_strategy_tier= +base rp= +ally bonus= +1on1 bonus= +FFA bonus= +random enemy bonus= +ELF enemy bonus= +HUMAN enemy bonus= +ORC enemy bonus= +UNDEAD enemy bonus= +ELF ally bonus= +HUMAN ally bonus= +ORC ally bonus= +UNDEAD ally bonus= +anti air strength= +anti casters strength= +anti towers strength= +anti piercing strength= +anti normal strength= +anti siege strength= +anti magic strength= +anti unarmored strength= +anti lightarmor strength= +anti mediumarmor strength= +anti heavyarmor strength= +expansion time= +second expansion time= +first hero bonus= +first hero bonus amount= +second hero bonus= +second hero bonus amount= +third hero bonus= +third hero bonus amount= +enemy_ELF add agg t1= +enemy_ELF add agg t2= +enemy_ELF add agg t3= +enemy_HUMAN add agg t1= +enemy_HUMAN add agg t2= +enemy_HUMAN add agg t3= +enemy_ORC add agg t1= +enemy_ORC add agg t2= +enemy_ORC add agg t3= +enemy_UNDEAD add agg t1= +enemy_UNDEAD add agg t2= +enemy_UNDEAD add agg t3= + +Profile Name= +Race= +Aggression= +Uncertainty= +Minimum Attack Strength= +Build Farm at left food= +first expansion time= +second expansion time= +strategy persistence= +influences number of factories built= +Taunt Rate= +Expansion Target Bonus= +Hard coded AI target bonus= +Hard coded AI target rate= +Surrender Value= +Favorite ELF Hero= +Favorite HUMAN Hero= +Favorite ORC Hero= +Favorite UNDEAD Hero= +Favorite Neutral Hero= +Favorite ELF Unit= +Favorite HUMAN Unit= +Favorite ORC Unit= +Favorite UNDEAD Unit= +Rare Profile= \ No newline at end of file diff --git a/Languages/Swedish/StrategyManager.txt b/Languages/Swedish/StrategyManager.txt index 6a857c6fb..4fb861fbe 100644 --- a/Languages/Swedish/StrategyManager.txt +++ b/Languages/Swedish/StrategyManager.txt @@ -50,4 +50,275 @@ title_strategy_manager= title_profile_editor= title_strategy_editor= title_racial_builds_editor= -title_settings_editor= \ No newline at end of file +title_settings_editor= + +increases performance by checking stuff not so often= +how many computer players is needed tor the sleep multiplier to start increasing.= +how many computer players is needed tor the sleep multiplier to stop increasing.= +how much is the sleep multiplied when it's below the slm_start condition= +how much is the sleep multiplied when it's above the slm_end condition= +scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= +should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= +computers only repair buildings if they have more than this many workers= +computers only repair buildings when the town is under attack if they got more than this many workers= +Distance behind the army a zeppelin follows= +when is neutral heroes available in seconds /5= +how close to a shop do a unit have to be for buying?= +time in seconds the hero goes to a shop before it gives up if it haven't reached it= +time in seconds a hero tries to buy items at shop before giving up= +"every this * 5 seconds, the build array is reset"= +normalizing strategy priorities added from strengths with this value= +the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= +strategy when attacking enemy players= +"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= +Distance from ranged units enemy units can be targeted with focus fire= +Distance from melee units enemy units can be targeted with focus fire= +Units flee from battle if the health goes below his % value(0.25 is 25%)= +Units flee from battle if the health goes below this= +how near the units a statue used by undead should be in the fights= +units will stay within this radius from a hero that is using town portal= +computers give extra gold above this value to other computers on the same team in need of gold= +computers give extra lumber above this value to other computers on the same team in need of lumber= +how many towns is a computer allowed to have?= +Add the [AMAI] tag in front of name= +Add the current skill after the name= +how many different harass groups you can use= +"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= +the radius araound a mine computers check for creeps before expanding there= +how far away from ranged enemy units harassing units attack a inferior enemy unit= +how far away from melee enemy units harassing units attack a inferior enemy unit= +how far away from ranged enemy units harassing units turn and flee= +how far away from melee enemy units harassing units turn and flee= +computers use chat taunts= +a enemy army within this distance is counted as a full threat= +a enemy army outside this distance is counted as no threat= +how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= +"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= +accepted threat level increase starts at this time= +and ends at that time= +it starts with this value= +and ends with that value= +accepted threat level multiplier increases at that enemy number= +until that enemy number= +the multiplier starts for accepted threat level starts with this= +and ends with this= +Army uses TP to get home and defend if a threat is greater than this= +Army uses TP to get home and defend if a threat is greater than this= +Army won't use TP home if they are closer to base than this and a low threat level appears= +Army won't use TP home if they are closer to base than this and a high threat level appears= +how big the army need to be for use of TP to threatened town= +minimum threat level TP use is allowed on= +how many peons does a goblin shredder replace in lumber harvesting= +computers don't build any workers for lumber harvesting if they have more lumber than this= +computers build all needed workers for lumber harvesting if they have lumber lower than this= +does the version have neutral heroes ?= +how many neutral heroes ?= +can only heroes buy stuff ?= +what is the versions food limit ?= +units within that radius are considered belonging to the current battle= +"same as with normal_battle_radius, but for battles against creeps"= +how near a mine a enemy building must be to make amai recognize it as taken= +what is the base strength of a hero (the level number is added to get the actual strength) ?= +at what level do the heroes get their ultimates ?= +how much extra strength does the ultimate give to the hero ?= +how far away do creeps attack buildings ?= +can mercs be bought at night without waking up creeps ?= +check for towers in this radius around a target= +check for towers in this radius during harassing= +don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= +Should the buildings of the AI be destroyed on defeat or given to neutral player ?= +reform the attack group (getting new units) every that time on an attack (in seconds / 2)= +the distance of the front locations from the start location= +Does this version have heroes?= +Enable to force computers to have there fixed name instead of a profile name= +Bonus strength added to minor creep camps= +Bonus strength added to mediocre creep camps= +Bonus strength added to major creep camps= +Can turn on for debugging mode to display debug type messages= +New strategy priority must be larger than this multiple to the current strategy= +Set to true to stop amai from giving up early when it detects its going to lose= +Priority to choose the first line of hero skills= +Priority to choose the second line of hero skills= +Priority to choose the third line of hero skills= +priority added to heroes to be picked if they are favorites of the used profile= +The optimal number of peons that should be harvesting gold= +Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= +Multiplier to players strength at highest aggression to measure if amai allowed to flee= +Multipler to players strength at highest aggression to measure if amai will flee= +Aggression below this uses the lowest strength flee multiplier= +Agression above this uses the highest strength flee multiplier= + +priority for reviving hero1= +priority for reviving hero2= +priority for reviving hero3= +priority increase for building needed buildings= +priority increase in time= +priority increase in quantity= +builds another farm at the same time when this near food used to food produced= +priority for farm building= +priority for peon building= +priority for expansion building= +priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= +priority for rebuilding an expansion= +number of peons to build when 1 mine is owned= +number of peons to build when 2 mines are owned= +number of peons to build when more mines are owned= +minimum number of peons when 1 mine is owned= +minimum number of peons when 2 mines are owned= +minimum number of peons when more than 1 mine is owned= +* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= +number of strategies with highest RPs that can be chosen when changing strategy= +priority added to all strategies having a building the computer already got as a key building= +priority added to all strategies having a building the computer already started to build as key building= +priority added to all strategies having both building the computer already got as key buildings= +value for 2 of a key buildings= +priority added to all strategies having a upgrade the computer already got as key upgrade in first level= +priority added to all strategies having a upgrade the computer already got as key upgrade in second level= +priority added to all strategies having a upgrade the computer already got as key upgrade in third level= +priority added to strategies havign the current profiles favorite unit as key units.= +this race is locked to this strategy number for testing.(-1 is unlocked)= +does the race use healing fountains ?= +does the race need manual loading of wisps in goldmines ?= +What is the unit to load ?= +What unit is it loaded in ?= +does the race have a towerrush ?= +if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= +the item is build towers is must?= +"how many items at a time , if can buy"= +what is the id of the races towers?= +"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= +what is the id of the tower upgrade1 (core)?= +what is the id of the tower upgrade2 (secondary)?= +"tower can move , like ELF tree or StarCraft human build fly?"= +what is the order of tower start move? -- like use root to loc move= +what is the unorder of tower end move?= +"tower is peon become , like ELF? AI will compensate more 2 peon"= +"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= +what is the building required to build towers ?= +how high (in percent) is the probability of doing a tower rush?= +does the race have a militia expansion ?= +how many racial heroes ?= +"a basic melee unit, only necessary when basic_melee is used"= +"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= +has the race a ghoul-like wood harvester/fighter unit ?= +do those ghouls go with the army on attacks ?= +can multiple racial workers work on the same building ?= +has the race no wood harvesters ?= +should the race leave injured units at home ?= +does the race expand with a mine building like undead ?= +does the race use the goblin shredder ?= +does the race have militia ?= +how far away from the town hall are the militia allowed ?= +what is the militia unit type id?= +what is the militia ability id ?= +what is the militia ability of the hall ?= +what is the unitstring/name of the militia ?= +what is the string of the unit that can be turned to militia ?= +shall the computer only use militias against larger threats ?= +can the race expand with an uprooted building that also helps fighting the creeps ?= +how high (in percent) is the probability of doing an ancient expansion when possible ?= +up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= +the unit id of the unit that should help in ancient expansion= +can expand with item building ?= +how high (in percent) is the probability of doing a item expansion ?= +buy expand item need hall level ?= +what is expand item name(from StandardUnits.txt) ?= +does the race sell ziggurats that are at no more needed expansions ?= +keep ziggurat if this near another building except a ziggurat is= +should the race build farms towards the front (as soon as the front is computed) ?= +limit the number of farms at the front to this number= +the first that many farms will be built at the mine= +the maximum distance between the mine and the expansion building= +Racial farms have healing properties= +the bonus strength value hero must have to be able to do the tower rush= +the bonus strength value hero must have to be able to do the ancient expansion= +priority for ghoul building= +smallest number of ghouls to build at all times= +maximum number of ghouls to build in low lumber situations= +" Used to create path units, must be different from race peon"= +Building id that can house peons/units and then shoot enemies.= +// Used to trigger melee defeat conditions on surrender.= +"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= + +Strategy Function Name= +Default Name= +Default Report= +key_building1= +key_building2= +key_upgrade1= +key_upgrade2= +key_unit= +beginning_strat= +strat_minimum_time (in seconds/6)= +strategy_type= +main_strategy_tier= +base rp= +ally bonus= +1on1 bonus= +FFA bonus= +random enemy bonus= +ELF enemy bonus= +HUMAN enemy bonus= +ORC enemy bonus= +UNDEAD enemy bonus= +ELF ally bonus= +HUMAN ally bonus= +ORC ally bonus= +UNDEAD ally bonus= +anti air strength= +anti casters strength= +anti towers strength= +anti piercing strength= +anti normal strength= +anti siege strength= +anti magic strength= +anti unarmored strength= +anti lightarmor strength= +anti mediumarmor strength= +anti heavyarmor strength= +expansion time= +second expansion time= +first hero bonus= +first hero bonus amount= +second hero bonus= +second hero bonus amount= +third hero bonus= +third hero bonus amount= +enemy_ELF add agg t1= +enemy_ELF add agg t2= +enemy_ELF add agg t3= +enemy_HUMAN add agg t1= +enemy_HUMAN add agg t2= +enemy_HUMAN add agg t3= +enemy_ORC add agg t1= +enemy_ORC add agg t2= +enemy_ORC add agg t3= +enemy_UNDEAD add agg t1= +enemy_UNDEAD add agg t2= +enemy_UNDEAD add agg t3= + +Profile Name= +Race= +Aggression= +Uncertainty= +Minimum Attack Strength= +Build Farm at left food= +first expansion time= +second expansion time= +strategy persistence= +influences number of factories built= +Taunt Rate= +Expansion Target Bonus= +Hard coded AI target bonus= +Hard coded AI target rate= +Surrender Value= +Favorite ELF Hero= +Favorite HUMAN Hero= +Favorite ORC Hero= +Favorite UNDEAD Hero= +Favorite Neutral Hero= +Favorite ELF Unit= +Favorite HUMAN Unit= +Favorite ORC Unit= +Favorite UNDEAD Unit= +Rare Profile= \ No newline at end of file diff --git a/REFORGED/Elf/Settings.txt b/REFORGED/Elf/Settings.txt index 17651616c..3077da2dc 100644 --- a/REFORGED/Elf/Settings.txt +++ b/REFORGED/Elf/Settings.txt @@ -1,80 +1,92 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 180 priority for reviving hero2 -hero3_revive_prio 150 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food2 -4 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 280 priority for expansion building -expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 400 priority for rebuilding an expansion -peon_1_mine_number 15 number of peons to build when 1 mine is owned -peon_2_mines_number 20 number of peons to build when 2 mines are owned -peon_mines_number 24 number of peons to build when more mines are owned -min_peon_number_single_mine 11 minimum number of peons when 1 mine is owned -min_peon_number_double_mine 16 minimum number of peons when 2 mines are owned -min_peon_number_multi_mine 21 minimum number of peons when more than 1 mine is owned -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading true does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp WISP What is the unit to load ? -race_manual_loading_mine ELF_MINE What unit is it loaded in ? -race_towerrush_available false does the race have a towerrush ? -race_tower_id ANCIENT_PROTECT what is the id of the races towers? -race_tower_upgrade 0 what is the id of the tower upgrade1 (core)? -race_towerrush_requirement HUNTERS_HALL what is the building required to build towers ? -race_towerrush_probability 23 how high (in percent) is the probability of doing a tower rush? -race_militia_expansion_available false does the race have a militia expansion ? -race_hero_number 4 how many racial heroes ? -race_simple_melee ARCHER a basic melee unit, only necessary when basic_melee is used -race_advanced_melee DRUID_CLAW an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_has_power_build false can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion false does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available false does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_id 0 what is the militia unit type id? -race_militia_ability 0 what is the militia ability id ? -race_militia_hall_ability 0 what is the militia ability of the hall ? -race_militia_unitstring "" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? -race_ancient_expansion_available true can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 43 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 18 up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ? -race_ancient_expansion_help_id 'earc' the unit id of the unit that should help in ancient expansion -race_item_expansion_available false can expand with item building ? -race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? -race_item_sale_level 0 buy expand item need hall level ? -race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? -race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front true should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 1 limit the number of farms at the front to this number -race_farms_at_mine 0 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building -race_has_moonwells true Racial farms have healing properties -race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 1 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 2 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'uaco' Used to create path units, must be different from race peon -race_ancient_barracks_rush_chance 50 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 180 priority for reviving hero2 +hero3_revive_prio 150 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food2 -4 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 280 priority for expansion building +expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 400 priority for rebuilding an expansion +peon_1_mine_number 15 number of peons to build when 1 mine is owned +peon_2_mines_number 20 number of peons to build when 2 mines are owned +peon_mines_number 24 number of peons to build when more mines are owned +min_peon_number_single_mine 11 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 16 minimum number of peons when 2 mines are owned +min_peon_number_multi_mine 21 minimum number of peons when more than 1 mine is owned +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading true does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp WISP What is the unit to load ? +race_manual_loading_mine ELF_MINE What unit is it loaded in ? +race_towerrush_available true does the race have a towerrush ? +race_tower_item 0 if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must false the item is build towers is must? +race_tower_item_quantity 0 how many items at a time , if can buy +race_tower_id ANCIENT_PROTECT what is the id of the races towers? +race_tower_id_replace 0 if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 0 what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 0 what is the id of the tower upgrade2 (secondary)? +race_tower_move true tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "root" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "unroot" what is the unorder of tower end move? +race_tower_bypeon true tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 4 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement HUNTERS_HALL what is the building required to build towers ? +race_towerrush_probability 20 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available false does the race have a militia expansion ? +race_hero_number 4 how many racial heroes ? +race_simple_melee ARCHER a basic melee unit, only necessary when basic_melee is used +race_advanced_melee DRUID_CLAW an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_has_power_build false can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion false does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available false does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_id 0 what is the militia unit type id? +race_militia_ability 0 what is the militia ability id ? +race_militia_hall_ability 0 what is the militia ability of the hall ? +race_militia_unitstring "" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? +race_ancient_expansion_available true can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 43 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 18 up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ? +race_ancient_expansion_help_id 'earc' the unit id of the unit that should help in ancient expansion +race_item_expansion_available false can expand with item building ? +race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? +race_item_sale_level 0 buy expand item need hall level ? +race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? +race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front true should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 4 limit the number of farms at the front to this number +race_farms_at_mine 0 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building +race_has_moonwells true Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 1 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 2 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'uaco' Used to create path units, must be different from race peon +racial_burrow 0 Building id that can house peons/units and then shoot enemies. +structid 'ngnh' // Used to trigger melee defeat conditions on surrender. +race_ancient_barracks_rush_chance 50 // If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file diff --git a/REFORGED/Human/Settings.txt b/REFORGED/Human/Settings.txt index ced67c6c1..c680bdacf 100644 --- a/REFORGED/Human/Settings.txt +++ b/REFORGED/Human/Settings.txt @@ -1,80 +1,92 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 180 priority for reviving hero2 -hero3_revive_prio 150 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food2 0 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 280 priority for expansion building -expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 400 priority for rebuilding an expansion -peon_1_mine_number 14 number of peons to build when 1 mine is owned -peon_2_mines_number 18 number of peons to build when 2 mines are owned -peon_mines_number 22 number of peons to build when more mines are owned -min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned -min_peon_number_double_mine 14 minimum number of peons when 2 mines are owned -min_peon_number_multi_mine 19 minimum number of peons when more than 1 mine is owned -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading false does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp 0 What is the unit to load ? -race_manual_loading_mine 0 What unit is it loaded in ? -race_towerrush_available false does the race have a towerrush ? -race_tower_id WATCH_TOWER what is the id of the races towers? -race_tower_upgrade GUARD_TOWER what is the id of the tower upgrade1 (core)? -race_towerrush_requirement LUMBER_MILL what is the building required to build towers ? -race_towerrush_probability 28 how high (in percent) is the probability of doing a tower rush? -race_militia_expansion_available true does the race have a militia expansion ? -race_hero_number 4 how many racial heroes ? -race_simple_melee FOOTMAN a basic melee unit, only necessary when basic_melee is used -race_advanced_melee KNIGHT an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_has_power_build true can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion false does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available true does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_id 'hmil' what is the militia unit type id? -race_militia_ability 'Amil' what is the militia ability id ? -race_militia_hall_ability 'Amic' what is the militia ability of the hall ? -race_militia_unitstring "militia" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "peasant" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? -race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? -race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion -race_item_expansion_available false can expand with item building ? -race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? -race_item_sale_level 0 buy expand item need hall level ? -race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? -race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 4 limit the number of farms at the front to this number -race_farms_at_mine 0 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building -race_has_moonwells false Racial farms have healing properties -race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 2 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'ewsp' Used to create path units, must be different from race peon -race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 180 priority for reviving hero2 +hero3_revive_prio 150 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food2 0 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 280 priority for expansion building +expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 400 priority for rebuilding an expansion +peon_1_mine_number 14 number of peons to build when 1 mine is owned +peon_2_mines_number 18 number of peons to build when 2 mines are owned +peon_mines_number 22 number of peons to build when more mines are owned +min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 14 minimum number of peons when 2 mines are owned +min_peon_number_multi_mine 19 minimum number of peons when more than 1 mine is owned +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading false does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp 0 What is the unit to load ? +race_manual_loading_mine 0 What unit is it loaded in ? +race_towerrush_available true does the race have a towerrush ? +race_tower_item IVORY_TOWER if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must false the item is build towers is must? +race_tower_item_quantity 2 how many items at a time , if can buy +race_tower_id WATCH_TOWER what is the id of the races towers? +race_tower_id_replace 0 if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 GUARD_TOWER what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 ARCANE_TOWER what is the id of the tower upgrade2 (secondary)? +race_tower_move false tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "" what is the unorder of tower end move? +race_tower_bypeon false tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 4 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement LUMBER_MILL what is the building required to build towers ? +race_towerrush_probability 15 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available true does the race have a militia expansion ? +race_hero_number 4 how many racial heroes ? +race_simple_melee FOOTMAN a basic melee unit, only necessary when basic_melee is used +race_advanced_melee KNIGHT an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_has_power_build true can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion false does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available true does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_id 'hmil' what is the militia unit type id? +race_militia_ability 'Amil' what is the militia ability id ? +race_militia_hall_ability 'Amic' what is the militia ability of the hall ? +race_militia_unitstring "militia" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "peasant" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? +race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? +race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion +race_item_expansion_available false can expand with item building ? +race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? +race_item_sale_level 0 buy expand item need hall level ? +race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? +race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 4 limit the number of farms at the front to this number +race_farms_at_mine 0 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building +race_has_moonwells false Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 2 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'ewsp' Used to create path units, must be different from race peon +racial_burrow 0 Building id that can house peons/units and then shoot enemies. +structid 'ngnh' // Used to trigger melee defeat conditions on surrender. +race_ancient_barracks_rush_chance 0 // If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file diff --git a/REFORGED/Orc/Settings.txt b/REFORGED/Orc/Settings.txt index d75f20d9a..97cf2da7c 100644 --- a/REFORGED/Orc/Settings.txt +++ b/REFORGED/Orc/Settings.txt @@ -1,81 +1,92 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 180 priority for reviving hero2 -hero3_revive_prio 150 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food2 -4 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 280 priority for expansion building -expa_emergency_prio 500 priority for making expansion when it's an emergency (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 400 priority for rebuilding an expansion -peon_1_mine_number 13 number of peons to build when 1 mine is owned -peon_2_mines_number 18 number of peons to build when 2 mines are owned -peon_mines_number 22 number of peons to build when more mines are owned -min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned -min_peon_number_double_mine 13 minimum number of peons when 2 mines are owned -min_peon_number_multi_mine 18 minimum number of peons when more than 1 mine is owned -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 2 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 10 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading false does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp 0 What is the unit to load ? -race_manual_loading_mine 0 What unit is it loaded in ? -race_towerrush_available true does the race have a towerrush ? -race_tower_id ORC_WATCH_TOWER what is the id of the races towers? -race_tower_upgrade 0 what is the id of the tower upgrade1 (core)? -race_towerrush_requirement FORGE what is the building required to build towers ? -race_towerrush_probability 32 how high (in percent) is the probability of doing a tower rush? -race_militia_expansion_available false does the race have a militia expansion ? -race_hero_number 4 how many racial heroes ? -race_simple_melee GRUNT a basic melee unit, only necessary when basic_melee is used -race_advanced_melee TAUREN an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_has_power_build false can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion false does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available false does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_id 0 what is the militia unit type id? -race_militia_ability 0 what is the militia ability id ? -race_militia_hall_ability 0 what is the militia ability of the hall ? -race_militia_unitstring "" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? -race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? -race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion -race_item_expansion_available true can expand with item building ? -race_item_expansion_probability 75 how high (in percent) is the probability of doing a item expansion ? -race_item_sale_level 3 buy expand item need hall level ? -race_item_expansion_item_id TINY_GREAT_HALL what is expand item name(from StandardUnits.txt) ? -race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 4 limit the number of farms at the front to this number -race_farms_at_mine 2 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion buildingmin_peon_number_double_mine -race_has_moonwells false Racial farms have healing properties -race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 2 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'ewsp' Used to create path units, must be different from race peon -racial_burrow BURROW Building id that can house peons/units and then shoot enemies. -race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 180 priority for reviving hero2 +hero3_revive_prio 150 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food2 -4 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 280 priority for expansion building +expa_emergency_prio 500 priority for making expansion when it's an emergency (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 400 priority for rebuilding an expansion +peon_1_mine_number 13 number of peons to build when 1 mine is owned +peon_2_mines_number 18 number of peons to build when 2 mines are owned +peon_mines_number 22 number of peons to build when more mines are owned +min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 13 minimum number of peons when 2 mines are owned +min_peon_number_multi_mine 18 minimum number of peons when more than 1 mine is owned +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 2 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 10 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading false does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp 0 What is the unit to load ? +race_manual_loading_mine 0 What unit is it loaded in ? +race_towerrush_available true does the race have a towerrush ? +race_tower_item 0 if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must false the item is build towers is must? +race_tower_item_quantity 0 how many items at a time , if can buy +race_tower_id ORC_WATCH_TOWER what is the id of the races towers? +race_tower_id_replace 0 if the race_tower_id has Blig land (AbilityId 'Abgl'), Please set, cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 0 what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 0 what is the id of the tower upgrade2 (secondary)? +race_tower_move false tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "" what is the unorder of tower end move? +race_tower_bypeon false tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 4 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement FORGE what is the building required to build towers ? +race_towerrush_probability 23 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available false does the race have a militia expansion ? +race_hero_number 4 how many racial heroes ? +race_simple_melee GRUNT a basic melee unit, only necessary when basic_melee is used +race_advanced_melee TAUREN an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_has_power_build false can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion false does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available false does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_id 0 what is the militia unit type id? +race_militia_ability 0 what is the militia ability id ? +race_militia_hall_ability 0 what is the militia ability of the hall ? +race_militia_unitstring "" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? +race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? +race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion +race_item_expansion_available true can expand with item building ? +race_item_expansion_probability 75 how high (in percent) is the probability of doing a item expansion ? +race_item_sale_level 3 buy expand item need hall level ? +race_item_expansion_item_id TINY_GREAT_HALL what is expand item name(from StandardUnits.txt) ? +race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 4 limit the number of farms at the front to this number +race_farms_at_mine 2 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion buildingmin_peon_number_double_mine +race_has_moonwells false Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 2 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'ewsp' Used to create path units, must be different from race peon +racial_burrow BURROW Building id that can house peons/units and then shoot enemies. +structid 'ngnh' // Used to trigger melee defeat conditions on surrender. +race_ancient_barracks_rush_chance 0 // If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file diff --git a/REFORGED/Undead/Settings.txt b/REFORGED/Undead/Settings.txt index af26374b8..91b8ce37c 100644 --- a/REFORGED/Undead/Settings.txt +++ b/REFORGED/Undead/Settings.txt @@ -1,80 +1,92 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 180 priority for reviving hero2 -hero3_revive_prio 150 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food2 -4 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 280 priority for expansion building -expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 400 priority for rebuilding an expansion -peon_1_mine_number 5 number of peons to build when 1 mine is owned -peon_2_mines_number 10 number of peons to build when 2 mines are owned -peon_mines_number 15 number of peons to build when more mines are owned -min_peon_number_single_mine 5 minimum number of peons when 1 mine is owned -min_peon_number_double_mine 10 minimum number of peons when 2 mine is owned -min_peon_number_multi_mine 15 minimum number of peons when more than 1 mine is owned -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading false does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp 0 What is the unit to load ? -race_manual_loading_mine 0 What unit is it loaded in ? -race_towerrush_available false does the race have a towerrush ? -race_tower_id ZIGGURAT_1 what is the id of the races towers? -race_tower_upgrade ZIGGURAT_2 what is the id of the tower upgrade1 (core)? -race_towerrush_requirement GRAVEYARD what is the building required to build towers ? -race_towerrush_probability 25 how high (in percent) is the probability of doing a tower rush? -race_militia_expansion_available false does the race have a militia expansion ? -race_hero_number 4 how many racial heroes ? -race_simple_melee GHOUL a basic melee unit, only necessary when basic_melee is used -race_advanced_melee ABOMINATION an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls true has the race a ghoul-like wood harvester/fighter unit ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_has_power_build false can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion true does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available false does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_id 0 what is the militia unit type id? -race_militia_ability 0 what is the militia ability id ? -race_militia_hall_ability 0 what is the militia ability of the hall ? -race_militia_unitstring "" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? -race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? -race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion -race_item_expansion_available false can expand with item building ? -race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? -race_item_sale_level 0 buy expand item need hall level ? -race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? -race_sell_ziggurats true does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1200 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 3 limit the number of farms at the front to this number -race_farms_at_mine 0 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building -race_has_moonwells false Racial farms have healing properties -race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 3 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'ewsp' Used to create path units, must be different from race peon -race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 180 priority for reviving hero2 +hero3_revive_prio 150 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food2 -4 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 280 priority for expansion building +expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 400 priority for rebuilding an expansion +peon_1_mine_number 5 number of peons to build when 1 mine is owned +peon_2_mines_number 10 number of peons to build when 2 mines are owned +peon_mines_number 15 number of peons to build when more mines are owned +min_peon_number_single_mine 5 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 10 minimum number of peons when 2 mine is owned +min_peon_number_multi_mine 15 minimum number of peons when more than 1 mine is owned +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading false does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp 0 What is the unit to load ? +race_manual_loading_mine 0 What unit is it loaded in ? +race_towerrush_available true does the race have a towerrush ? +race_tower_item SACRIFICIAL_SKULL if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must true the item is build towers is must? +race_tower_item_quantity 1 how many items at a time , if can buy +race_tower_id ZIGGURAT_1 what is the id of the races towers? +race_tower_id_replace AVIARY if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 ZIGGURAT_2 what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 ZIGGURAT_FROST what is the id of the tower upgrade2 (secondary)? +race_tower_move false tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "" what is the unorder of tower end move? +race_tower_bypeon false tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 2 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement GRAVEYARD what is the building required to build towers ? +race_towerrush_probability 17 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available false does the race have a militia expansion ? +race_hero_number 4 how many racial heroes ? +race_simple_melee GHOUL a basic melee unit, only necessary when basic_melee is used +race_advanced_melee ABOMINATION an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls true has the race a ghoul-like wood harvester/fighter unit ? +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_has_power_build false can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion true does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available false does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_id 0 what is the militia unit type id? +race_militia_ability 0 what is the militia ability id ? +race_militia_hall_ability 0 what is the militia ability of the hall ? +race_militia_unitstring "" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? +race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? +race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion +race_item_expansion_available false can expand with item building ? +race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? +race_item_sale_level 0 buy expand item need hall level ? +race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? +race_sell_ziggurats true does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1200 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 3 limit the number of farms at the front to this number +race_farms_at_mine 0 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building +race_has_moonwells false Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 3 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'ewsp' Used to create path units, must be different from race peon +racial_burrow 0 Building id that can house peons/units and then shoot enemies. +structid 'ngnh' // Used to trigger melee defeat conditions on surrender. +race_ancient_barracks_rush_chance 0 // If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file diff --git a/ROC/Elf/Settings.txt b/ROC/Elf/Settings.txt index ecf5fb692..a8a090ba9 100644 --- a/ROC/Elf/Settings.txt +++ b/ROC/Elf/Settings.txt @@ -1,78 +1,89 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 120 priority for reviving hero2 -hero3_revive_prio 80 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food 8 build farm when this near food used to food produced -farm_food2 1 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 200 priority for expansion building -expa_emergency_prio 300 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 200 priority for rebuilding an expansion -peon_1_mine_number 15 number of peons to build when 1 mine is owned -peon_2_mines_number 20 number of peons to build when 2 mines are owned -peon_mines_number 25 number of peons to build when more mines are owned -min_peon_number_single_mine 10 minimum number of peons when 1 mine is owned -min_peon_number_double_mine 15 minimum number of peons when 2 mines are owned -min_peon_number_multi_mine 20 minimum number of peons when more than 1 mine is owned -strat_persistence 1500 extra added priority to the current strategy to make computer not change strategy too fast -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading true does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp WISP What is the unit to load ? -race_manual_loading_mine ELF_MINE What unit is it loaded in ? -race_towerrush_available false does the race have a towerrush ? -race_militia_expansion_available false does the race have a militia expansion ? -race_hero_number 3 how many racial heroes ? -race_simple_melee 0 a basic melee unit, only necessary when basic_melee is used -race_advanced_melee 0 an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? -race_has_power_build false can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion false does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available false does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_ability 'Amil' what is the militia ability id ? -race_militia_hall_ability 'Amic' what is the militia ability of the hall ? -race_militia_unitstring "militia" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "peasant" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? -race_ancient_expansion_available true can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? -race_ancient_expansion_help_id 'earc' the unit id of the unit that should help in ancient expansion -race_towerrush_requirement HUNTERS_HALL what is the building required to build towers ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 4 limit the number of farms at the front to this number -race_farms_at_mine 0 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building -race_tower_id ANCIENT_PROTECT what is the id of the races towers? -race_tower_upgrade 0 what is the id of the tower upgrade ? -race_towerrush_probability 50 how high (in percent) is the probability of doing a tower rush? -min_peon_number_double_mine 11 minimum number of peons when 2 mines are owned -race_has_moonwells false Racial farms have healing properties -race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 2 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'uaco' Used to create path units, must be different from race peon -race_ancient_barracks_rush_chance 50 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 120 priority for reviving hero2 +hero3_revive_prio 80 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food 8 build farm when this near food used to food produced +farm_food2 1 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 200 priority for expansion building +expa_emergency_prio 300 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 200 priority for rebuilding an expansion +peon_1_mine_number 15 number of peons to build when 1 mine is owned +peon_2_mines_number 20 number of peons to build when 2 mines are owned +peon_mines_number 24 number of peons to build when more mines are owned +min_peon_number_single_mine 11 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 16 minimum number of peons when 2 mines are owned +min_peon_number_multi_mine 21 minimum number of peons when more than 1 mine is owned +strat_persistence 1500 extra added priority to the current strategy to make computer not change strategy too fast +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading true does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp WISP What is the unit to load ? +race_manual_loading_mine ELF_MINE What unit is it loaded in ? +race_towerrush_available false does the race have a towerrush ? +race_tower_item 0 if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must false the item is build towers is must? +race_tower_item_quantity 0 how many items at a time , if can buy +race_tower_id ANCIENT_PROTECT what is the id of the races towers? +race_tower_id_replace 0 if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 0 what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 0 what is the id of the tower upgrade2 (secondary)? +race_tower_move true tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "root" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "unroot" what is the unorder of tower end move? +race_tower_bypeon true tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 4 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement HUNTERS_HALL what is the building required to build towers ? +race_towerrush_probability 15 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available false does the race have a militia expansion ? +race_hero_number 3 how many racial heroes ? +race_simple_melee 0 a basic melee unit, only necessary when basic_melee is used +race_advanced_melee 0 an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? +race_has_power_build false can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion false does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available false does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_ability 0 what is the militia ability id ? +race_militia_hall_ability 0 what is the militia ability of the hall ? +race_militia_unitstring "" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? +race_ancient_expansion_available true can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? +race_ancient_expansion_help_id 'earc' the unit id of the unit that should help in ancient expansion +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 4 limit the number of farms at the front to this number +race_farms_at_mine 0 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building +race_has_moonwells true Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 1 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 2 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'uaco' Used to create path units, must be different from race peon +racial_burrow 0 Building id that can house peons/units and then shoot enemies. +structid 'ngnh' Used to trigger melee defeat conditions on surrender. +race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file diff --git a/ROC/Human/Settings.txt b/ROC/Human/Settings.txt index 7c610720d..e7b3be988 100644 --- a/ROC/Human/Settings.txt +++ b/ROC/Human/Settings.txt @@ -1,78 +1,89 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 120 priority for reviving hero2 -hero3_revive_prio 80 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food 8 build farm when this near food used to food produced -farm_food2 1 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 200 priority for expansion building -expa_emergency_prio 300 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 200 priority for rebuilding an expansion -peon_1_mine_number 12 number of peons to build when 1 mine is owned -peon_2_mines_number 17 number of peons to build when 2 mines are owned -peon_mines_number 22 number of peons to build when more mines are owned -min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned -min_peon_number_double_mine 14 minimum number of peons when 2 mines are owned -min_peon_number_multi_mine 19 minimum number of peons when more than 1 mine is owned -strat_persistence 1500 extra added priority to the current strategy to make computer not change strategy too fast -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading false does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp 0 What is the unit to load ? -race_manual_loading_mine 0 What unit is it loaded in ? -race_towerrush_available false does the race have a towerrush ? -race_militia_expansion_available true does the race have a militia expansion ? -race_hero_number 3 how many racial heroes ? -race_simple_melee FOOTMAN a basic melee unit, only necessary when basic_melee is used -race_advanced_melee KNIGHT an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? -race_has_power_build true can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion false does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available true does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_ability 'Amil' what is the militia ability id ? -race_militia_hall_ability 'Amic' what is the militia ability of the hall ? -race_militia_unitstring "militia" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "peasant" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats true shall the computer only use militias against larger threats ? -race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 33 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? -race_ancient_expansion_help_id 'earc' the unit id of the unit that should help in ancient expansion -race_towerrush_requirement LUMBER_MILL what is the building required to build towers ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 4 limit the number of farms at the front to this number -race_farms_at_mine 0 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building -race_tower_id WATCH_TOWER what is the id of the races towers? -race_tower_upgrade GUARD_TOWER what is the id of the tower upgrade ? -race_towerrush_probability 50 how high (in percent) is the probability of doing a tower rush? -min_peon_number_double_mine 11 minimum number of peons when 2 mines are owned -race_has_moonwells false Racial farms have healing properties -race_towerrush_hero_rush_level 2 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 2 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'ewsp' Used to create path units, must be different from race peon -race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 120 priority for reviving hero2 +hero3_revive_prio 80 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food 8 build farm when this near food used to food produced +farm_food2 1 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 200 priority for expansion building +expa_emergency_prio 300 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 200 priority for rebuilding an expansion +peon_1_mine_number 14 number of peons to build when 1 mine is owned +peon_2_mines_number 18 number of peons to build when 2 mines are owned +peon_mines_number 22 number of peons to build when more mines are owned +min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 14 minimum number of peons when 2 mines are owned +min_peon_number_multi_mine 19 minimum number of peons when more than 1 mine is owned +strat_persistence 1500 extra added priority to the current strategy to make computer not change strategy too fast +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading false does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp 0 What is the unit to load ? +race_manual_loading_mine 0 What unit is it loaded in ? +race_towerrush_available false does the race have a towerrush ? +race_tower_item 0 if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must false the item is build towers is must? +race_tower_item_quantity 0 how many items at a time , if can buy +race_tower_id WATCH_TOWER what is the id of the races towers? +race_tower_id_replace 0 if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 GUARD_TOWER what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 0 what is the id of the tower upgrade2 (secondary)? +race_tower_move false tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "" what is the unorder of tower end move? +race_tower_bypeon false tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 4 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement LUMBER_MILL what is the building required to build towers ? +race_towerrush_probability 20 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available true does the race have a militia expansion ? +race_hero_number 3 how many racial heroes ? +race_simple_melee FOOTMAN a basic melee unit, only necessary when basic_melee is used +race_advanced_melee KNIGHT an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? +race_has_power_build true can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion false does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available true does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_ability 'Amil' what is the militia ability id ? +race_militia_hall_ability 'Amic' what is the militia ability of the hall ? +race_militia_unitstring "militia" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "peasant" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats true shall the computer only use militias against larger threats ? +race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 33 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? +race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 4 limit the number of farms at the front to this number +race_farms_at_mine 0 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building +race_has_moonwells false Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 1 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 2 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'ewsp' Used to create path units, must be different from race peon +racial_burrow 0 Building id that can house peons/units and then shoot enemies. +structid 'ngnh' Used to trigger melee defeat conditions on surrender. +race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file diff --git a/ROC/Orc/Settings.txt b/ROC/Orc/Settings.txt index 101a033c2..e4df49535 100644 --- a/ROC/Orc/Settings.txt +++ b/ROC/Orc/Settings.txt @@ -1,78 +1,86 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 120 priority for reviving hero2 -hero3_revive_prio 80 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food 8 build farm when this near food used to food produced -farm_food2 1 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 200 priority for expansion building -expa_emergency_prio 300 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 200 priority for rebuilding an expansion -peon_1_mine_number 12 number of peons to build when 1 mine is owned -peon_2_mines_number 17 number of peons to build when 2 mines are owned -peon_mines_number 22 number of peons to build when more mines are owned -min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned -min_peon_number_double_mine 13 minimum number of peons when 2 mines are owned -min_peon_number_multi_mine 18 minimum number of peons when more than 1 mine is owned -strat_persistence 1500 extra added priority to the current strategy to make computer not change strategy too fast -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading false does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp 0 What is the unit to load ? -race_manual_loading_mine 0 What unit is it loaded in ? -race_towerrush_available true does the race have a towerrush ? -race_militia_expansion_available false does the race have a militia expansion ? -race_hero_number 3 how many racial heroes ? -race_simple_melee 0 a basic melee unit, only necessary when basic_melee is used -race_advanced_melee 0 an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? -race_has_power_build false can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion false does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available false does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_ability 'Amil' what is the militia ability id ? -race_militia_hall_ability 'Amic' what is the militia ability of the hall ? -race_militia_unitstring "militia" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "peasant" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? -race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 33 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? -race_ancient_expansion_help_id 'earc' the unit id of the unit that should help in ancient expansion -race_towerrush_requirement FORGE what is the building required to build towers ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 4 limit the number of farms at the front to this number -race_farms_at_mine 0 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building -race_tower_id ORC_WATCH_TOWER what is the id of the races towers? -race_tower_upgrade 0 what is the id of the tower upgrade ? -race_towerrush_probability 40 how high (in percent) is the probability of doing a tower rush? -min_peon_number_double_mine 11 minimum number of peons when 2 mines are owned -race_has_moonwells false Racial farms have healing properties -race_towerrush_hero_rush_level 2 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 2 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'ewsp' Used to create path units, must be different from race peon +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 120 priority for reviving hero2 +hero3_revive_prio 80 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food 8 build farm when this near food used to food produced +farm_food2 1 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 200 priority for expansion building +expa_emergency_prio 300 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 200 priority for rebuilding an expansion +peon_1_mine_number 13 number of peons to build when 1 mine is owned +peon_2_mines_number 18 number of peons to build when 2 mines are owned +peon_mines_number 22 number of peons to build when more mines are owned +min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 13 minimum number of peons when 2 mines are owned +min_peon_number_multi_mine 18 minimum number of peons when more than 1 mine is owned +strat_persistence 1500 extra added priority to the current strategy to make computer not change strategy too fast +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading false does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp 0 What is the unit to load ? +race_manual_loading_mine 0 What unit is it loaded in ? +race_towerrush_available true does the race have a towerrush ? +race_tower_item 0 if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must false the item is build towers is must? +race_tower_item_quantity 0 how many items at a time , if can buy +race_tower_id ORC_WATCH_TOWER what is the id of the races towers? +race_tower_move false tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "" what is the unorder of tower end move? +race_tower_bypeon false tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 4 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement FORGE what is the building required to build towers ? +race_towerrush_probability 25 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available false does the race have a militia expansion ? +race_hero_number 3 how many racial heroes ? +race_simple_melee 0 a basic melee unit, only necessary when basic_melee is used +race_advanced_melee 0 an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? +race_has_power_build false can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion false does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available false does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_ability 0 what is the militia ability id ? +race_militia_hall_ability 0 what is the militia ability of the hall ? +race_militia_unitstring "" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? +race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 33 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? +race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 4 limit the number of farms at the front to this number +race_farms_at_mine 0 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building +race_has_moonwells false Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 2 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'ewsp' Used to create path units, must be different from race peon +racial_burrow BURROW Building id that can house peons/units and then shoot enemies. +structid 'ngnh' Used to trigger melee defeat conditions on surrender. race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file diff --git a/ROC/Undead/Settings.txt b/ROC/Undead/Settings.txt index a301ab9e5..6a1374002 100644 --- a/ROC/Undead/Settings.txt +++ b/ROC/Undead/Settings.txt @@ -1,77 +1,89 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 120 priority for reviving hero2 -hero3_revive_prio 80 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food 8 build farm when this near food used to food produced -farm_food2 1 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 200 priority for expansion building -expa_emergency_prio 300 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 200 priority for rebuilding an expansion -peon_1_mine_number 5 number of peons to build when 1 mine is owned -peon_2_mines_number 10 number of peons to build when 2 mines are owned -peon_mines_number 15 number of peons to build when more mines are owned -min_peon_number_single_mine 5 minimum number of peons when 1 mine is owned -min_peon_number_multi_mine 10 minimum number of peons when more than 1 mine is owned -strat_persistence 1500 extra added priority to the current strategy to make computer not change strategy too fast -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading false does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp 0 What is the unit to load ? -race_manual_loading_mine 0 What unit is it loaded in ? -race_towerrush_available false does the race have a towerrush ? -race_militia_expansion_available false does the race have a militia expansion ? -race_hero_number 3 how many racial heroes ? -race_simple_melee 0 a basic melee unit, only necessary when basic_melee is used -race_advanced_melee 0 an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls true has the race a ghoul-like wood harvester/fighter unit ? -race_has_power_build false can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion true does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available false does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_ability 'Amil' what is the militia ability id ? -race_militia_hall_ability 'Amic' what is the militia ability of the hall ? -race_militia_unitstring "militia" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "peasant" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? -race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 33 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? -race_ancient_expansion_help_id 'earc' the unit id of the unit that should help in ancient expansion -race_towerrush_requirement 0 what is the building required to build towers ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_sell_ziggurats true does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1200 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 4 limit the number of farms at the front to this number -race_farms_at_mine 0 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building -race_tower_id ZIGGURAT_1 what is the id of the races towers? -race_tower_upgrade ZIGGURAT_2 what is the id of the tower upgrade ? -race_towerrush_probability 50 how high (in percent) is the probability of doing a tower rush? -min_peon_number_double_mine 11 minimum number of peons when 2 mines are owned -race_has_moonwells false Racial farms have healing properties -race_towerrush_hero_rush_level 2 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 2 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'ewsp' Used to create path units, must be different from race peon -race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 120 priority for reviving hero2 +hero3_revive_prio 80 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food 8 build farm when this near food used to food produced +farm_food2 1 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 200 priority for expansion building +expa_emergency_prio 300 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 200 priority for rebuilding an expansion +peon_1_mine_number 5 number of peons to build when 1 mine is owned +peon_2_mines_number 10 number of peons to build when 2 mines are owned +peon_mines_number 15 number of peons to build when more mines are owned +min_peon_number_single_mine 5 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 10 minimum number of peons when 2 mines are owned +min_peon_number_multi_mine 15 minimum number of peons when more than 1 mine is owned +strat_persistence 1500 extra added priority to the current strategy to make computer not change strategy too fast +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading false does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp 0 What is the unit to load ? +race_manual_loading_mine 0 What unit is it loaded in ? +race_towerrush_available false does the race have a towerrush ? +race_tower_item 0 if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must false the item is build towers is must? +race_tower_item_quantity 0 how many items at a time , if can buy +race_tower_id ZIGGURAT_1 what is the id of the races towers? +race_tower_id_replace AVIARY if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 ZIGGURAT_2 what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 0 what is the id of the tower upgrade2 (secondary)? +race_tower_move false tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "" what is the unorder of tower end move? +race_tower_bypeon false tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 2 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement GRAVEYARD what is the building required to build towers ? +race_towerrush_probability 20 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available false does the race have a militia expansion ? +race_hero_number 3 how many racial heroes ? +race_simple_melee 0 a basic melee unit, only necessary when basic_melee is used +race_advanced_melee 0 an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls true has the race a ghoul-like wood harvester/fighter unit ? +race_has_power_build false can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion true does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available false does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_ability 0 what is the militia ability id ? +race_militia_hall_ability 0 what is the militia ability of the hall ? +race_militia_unitstring "" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? +race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 33 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? +race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_sell_ziggurats true does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1200 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 4 limit the number of farms at the front to this number +race_farms_at_mine 0 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building +race_has_moonwells false Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 2 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'ewsp' Used to create path units, must be different from race peon +racial_burrow 0 Building id that can house peons/units and then shoot enemies. +structid 'ngnh' Used to trigger melee defeat conditions on surrender. +race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race diff --git a/TFT/Elf/Settings.txt b/TFT/Elf/Settings.txt index 8eabf18ae..3077da2dc 100644 --- a/TFT/Elf/Settings.txt +++ b/TFT/Elf/Settings.txt @@ -1,80 +1,92 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 180 priority for reviving hero2 -hero3_revive_prio 150 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food2 -4 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 280 priority for expansion building -expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 400 priority for rebuilding an expansion -peon_1_mine_number 15 number of peons to build when 1 mine is owned -peon_2_mines_number 20 number of peons to build when 2 mines are owned -peon_mines_number 24 number of peons to build when more mines are owned -min_peon_number_single_mine 11 minimum number of peons when 1 mine is owned -min_peon_number_double_mine 16 minimum number of peons when 2 mines are owned -min_peon_number_multi_mine 21 minimum number of peons when more than 1 mine is owned -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading true does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp WISP What is the unit to load ? -race_manual_loading_mine ELF_MINE What unit is it loaded in ? -race_towerrush_available false does the race have a towerrush ? -race_tower_id ANCIENT_PROTECT what is the id of the races towers? -race_tower_upgrade 0 what is the id of the tower upgrade1 (core)? -race_towerrush_requirement HUNTERS_HALL what is the building required to build towers ? -race_towerrush_probability 23 how high (in percent) is the probability of doing a tower rush? -race_militia_expansion_available false does the race have a militia expansion ? -race_hero_number 4 how many racial heroes ? -race_simple_melee ARCHER a basic melee unit, only necessary when basic_melee is used -race_advanced_melee DRUID_CLAW an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_has_power_build false can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion false does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available false does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_id 0 what is the militia unit type id? -race_militia_ability 0 what is the militia ability id ? -race_militia_hall_ability 0 what is the militia ability of the hall ? -race_militia_unitstring "" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? -race_ancient_expansion_available true can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 43 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 18 up to how much expansion strength is an ancient expansion allowed ? -race_ancient_expansion_help_id 'earc' the unit id of the unit that should help in ancient expansion -race_item_expansion_available false can expand with item building ? -race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? -race_item_sale_level 0 buy expand item need hall level ? -race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? -race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front true should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 1 limit the number of farms at the front to this number -race_farms_at_mine 0 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building -race_has_moonwells true Racial farms have healing properties -race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 1 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 2 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'uaco' Used to create path units, must be different from race peon -race_ancient_barracks_rush_chance 50 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 180 priority for reviving hero2 +hero3_revive_prio 150 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food2 -4 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 280 priority for expansion building +expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 400 priority for rebuilding an expansion +peon_1_mine_number 15 number of peons to build when 1 mine is owned +peon_2_mines_number 20 number of peons to build when 2 mines are owned +peon_mines_number 24 number of peons to build when more mines are owned +min_peon_number_single_mine 11 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 16 minimum number of peons when 2 mines are owned +min_peon_number_multi_mine 21 minimum number of peons when more than 1 mine is owned +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading true does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp WISP What is the unit to load ? +race_manual_loading_mine ELF_MINE What unit is it loaded in ? +race_towerrush_available true does the race have a towerrush ? +race_tower_item 0 if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must false the item is build towers is must? +race_tower_item_quantity 0 how many items at a time , if can buy +race_tower_id ANCIENT_PROTECT what is the id of the races towers? +race_tower_id_replace 0 if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 0 what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 0 what is the id of the tower upgrade2 (secondary)? +race_tower_move true tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "root" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "unroot" what is the unorder of tower end move? +race_tower_bypeon true tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 4 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement HUNTERS_HALL what is the building required to build towers ? +race_towerrush_probability 20 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available false does the race have a militia expansion ? +race_hero_number 4 how many racial heroes ? +race_simple_melee ARCHER a basic melee unit, only necessary when basic_melee is used +race_advanced_melee DRUID_CLAW an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_has_power_build false can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion false does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available false does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_id 0 what is the militia unit type id? +race_militia_ability 0 what is the militia ability id ? +race_militia_hall_ability 0 what is the militia ability of the hall ? +race_militia_unitstring "" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? +race_ancient_expansion_available true can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 43 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 18 up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ? +race_ancient_expansion_help_id 'earc' the unit id of the unit that should help in ancient expansion +race_item_expansion_available false can expand with item building ? +race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? +race_item_sale_level 0 buy expand item need hall level ? +race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? +race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front true should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 4 limit the number of farms at the front to this number +race_farms_at_mine 0 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building +race_has_moonwells true Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 1 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 2 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'uaco' Used to create path units, must be different from race peon +racial_burrow 0 Building id that can house peons/units and then shoot enemies. +structid 'ngnh' // Used to trigger melee defeat conditions on surrender. +race_ancient_barracks_rush_chance 50 // If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file diff --git a/TFT/Human/Settings.txt b/TFT/Human/Settings.txt index ced67c6c1..dd75e2b3c 100644 --- a/TFT/Human/Settings.txt +++ b/TFT/Human/Settings.txt @@ -1,80 +1,92 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 180 priority for reviving hero2 -hero3_revive_prio 150 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food2 0 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 280 priority for expansion building -expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 400 priority for rebuilding an expansion -peon_1_mine_number 14 number of peons to build when 1 mine is owned -peon_2_mines_number 18 number of peons to build when 2 mines are owned -peon_mines_number 22 number of peons to build when more mines are owned -min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned -min_peon_number_double_mine 14 minimum number of peons when 2 mines are owned -min_peon_number_multi_mine 19 minimum number of peons when more than 1 mine is owned -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading false does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp 0 What is the unit to load ? -race_manual_loading_mine 0 What unit is it loaded in ? -race_towerrush_available false does the race have a towerrush ? -race_tower_id WATCH_TOWER what is the id of the races towers? -race_tower_upgrade GUARD_TOWER what is the id of the tower upgrade1 (core)? -race_towerrush_requirement LUMBER_MILL what is the building required to build towers ? -race_towerrush_probability 28 how high (in percent) is the probability of doing a tower rush? -race_militia_expansion_available true does the race have a militia expansion ? -race_hero_number 4 how many racial heroes ? -race_simple_melee FOOTMAN a basic melee unit, only necessary when basic_melee is used -race_advanced_melee KNIGHT an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_has_power_build true can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion false does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available true does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_id 'hmil' what is the militia unit type id? -race_militia_ability 'Amil' what is the militia ability id ? -race_militia_hall_ability 'Amic' what is the militia ability of the hall ? -race_militia_unitstring "militia" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "peasant" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? -race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? -race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion -race_item_expansion_available false can expand with item building ? -race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? -race_item_sale_level 0 buy expand item need hall level ? -race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? -race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 4 limit the number of farms at the front to this number -race_farms_at_mine 0 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building -race_has_moonwells false Racial farms have healing properties -race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 2 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'ewsp' Used to create path units, must be different from race peon -race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 180 priority for reviving hero2 +hero3_revive_prio 150 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food2 0 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 280 priority for expansion building +expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 400 priority for rebuilding an expansion +peon_1_mine_number 14 number of peons to build when 1 mine is owned +peon_2_mines_number 18 number of peons to build when 2 mines are owned +peon_mines_number 22 number of peons to build when more mines are owned +min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 14 minimum number of peons when 2 mines are owned +min_peon_number_multi_mine 19 minimum number of peons when more than 1 mine is owned +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading false does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp 0 What is the unit to load ? +race_manual_loading_mine 0 What unit is it loaded in ? +race_towerrush_available true does the race have a towerrush ? +race_tower_item IVORY_TOWER if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must false the item is build towers is must? +race_tower_item_quantity 2 how many items at a time , if can buy +race_tower_id WATCH_TOWER what is the id of the races towers? +race_tower_id_replace 0 if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 GUARD_TOWER what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 ARCANE_TOWER what is the id of the tower upgrade2 (secondary)? +race_tower_move false tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "" what is the unorder of tower end move? +race_tower_bypeon false tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 4 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement LUMBER_MILL what is the building required to build towers ? +race_towerrush_probability 18 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available true does the race have a militia expansion ? +race_hero_number 4 how many racial heroes ? +race_simple_melee FOOTMAN a basic melee unit, only necessary when basic_melee is used +race_advanced_melee KNIGHT an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_has_power_build true can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion false does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available true does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_id 'hmil' what is the militia unit type id? +race_militia_ability 'Amil' what is the militia ability id ? +race_militia_hall_ability 'Amic' what is the militia ability of the hall ? +race_militia_unitstring "militia" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "peasant" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? +race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? +race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion +race_item_expansion_available false can expand with item building ? +race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? +race_item_sale_level 0 buy expand item need hall level ? +race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? +race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 4 limit the number of farms at the front to this number +race_farms_at_mine 0 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building +race_has_moonwells false Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 2 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'ewsp' Used to create path units, must be different from race peon +racial_burrow 0 Building id that can house peons/units and then shoot enemies. +structid 'ngnh' // Used to trigger melee defeat conditions on surrender. +race_ancient_barracks_rush_chance 0 // If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file diff --git a/TFT/Orc/Settings.txt b/TFT/Orc/Settings.txt index 7bc61e1c2..220d7a75f 100644 --- a/TFT/Orc/Settings.txt +++ b/TFT/Orc/Settings.txt @@ -1,81 +1,92 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 180 priority for reviving hero2 -hero3_revive_prio 150 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food2 -4 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 280 priority for expansion building -expa_emergency_prio 500 priority for making expansion when it's an emergency (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 400 priority for rebuilding an expansion -peon_1_mine_number 13 number of peons to build when 1 mine is owned -peon_2_mines_number 18 number of peons to build when 2 mines are owned -peon_mines_number 22 number of peons to build when more mines are owned -min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned -min_peon_number_double_mine 13 minimum number of peons when 2 mines are owned -min_peon_number_multi_mine 18 minimum number of peons when more than 1 mine is owned -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 2 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 10 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading false does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp 0 What is the unit to load ? -race_manual_loading_mine 0 What unit is it loaded in ? -race_towerrush_available true does the race have a towerrush ? -race_tower_id ORC_WATCH_TOWER what is the id of the races towers? -race_tower_upgrade 0 what is the id of the tower upgrade1 (core)? -race_towerrush_requirement FORGE what is the building required to build towers ? -race_towerrush_probability 32 how high (in percent) is the probability of doing a tower rush? -race_militia_expansion_available false does the race have a militia expansion ? -race_hero_number 4 how many racial heroes ? -race_simple_melee GRUNT a basic melee unit, only necessary when basic_melee is used -race_advanced_melee TAUREN an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_has_power_build false can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion false does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available false does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_id 0 what is the militia unit type id? -race_militia_ability 0 what is the militia ability id ? -race_militia_hall_ability 0 what is the militia ability of the hall ? -race_militia_unitstring "" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? -race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? -race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion -race_item_expansion_available true can expand with item building ? -race_item_expansion_probability 65 how high (in percent) is the probability of doing a item expansion ? -race_item_sale_level 3 buy expand item need hall level ? -race_item_expansion_item_id TINY_GREAT_HALL what is expand item name(from StandardUnits.txt) ? -race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 4 limit the number of farms at the front to this number -race_farms_at_mine 2 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion buildingmin_peon_number_double_mine -race_has_moonwells false Racial farms have healing properties -race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 2 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'ewsp' Used to create path units, must be different from race peon -racial_burrow BURROW Building id that can house peons/units and then shoot enemies. -race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 180 priority for reviving hero2 +hero3_revive_prio 150 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food2 -4 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 280 priority for expansion building +expa_emergency_prio 500 priority for making expansion when it's an emergency (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 400 priority for rebuilding an expansion +peon_1_mine_number 13 number of peons to build when 1 mine is owned +peon_2_mines_number 18 number of peons to build when 2 mines are owned +peon_mines_number 22 number of peons to build when more mines are owned +min_peon_number_single_mine 8 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 13 minimum number of peons when 2 mines are owned +min_peon_number_multi_mine 18 minimum number of peons when more than 1 mine is owned +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 2 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 10 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading false does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp 0 What is the unit to load ? +race_manual_loading_mine 0 What unit is it loaded in ? +race_towerrush_available true does the race have a towerrush ? +race_tower_item 0 if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must false the item is build towers is must? +race_tower_item_quantity 0 how many items at a time , if can buy +race_tower_id ORC_WATCH_TOWER what is the id of the races towers? +race_tower_id_replace 0 if the race_tower_id has Blig land (AbilityId 'Abgl'), Please set, cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 0 what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 0 what is the id of the tower upgrade2 (secondary)? +race_tower_move false tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "" what is the unorder of tower end move? +race_tower_bypeon false tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 4 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement FORGE what is the building required to build towers ? +race_towerrush_probability 24 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available false does the race have a militia expansion ? +race_hero_number 4 how many racial heroes ? +race_simple_melee GRUNT a basic melee unit, only necessary when basic_melee is used +race_advanced_melee TAUREN an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_has_power_build false can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion false does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available false does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_id 0 what is the militia unit type id? +race_militia_ability 0 what is the militia ability id ? +race_militia_hall_ability 0 what is the militia ability of the hall ? +race_militia_unitstring "" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? +race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? +race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion +race_item_expansion_available true can expand with item building ? +race_item_expansion_probability 75 how high (in percent) is the probability of doing a item expansion ? +race_item_sale_level 3 buy expand item need hall level ? +race_item_expansion_item_id TINY_GREAT_HALL what is expand item name(from StandardUnits.txt) ? +race_sell_ziggurats false does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1500 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 4 limit the number of farms at the front to this number +race_farms_at_mine 2 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion buildingmin_peon_number_double_mine +race_has_moonwells false Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 2 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'ewsp' Used to create path units, must be different from race peon +racial_burrow BURROW Building id that can house peons/units and then shoot enemies. +structid 'ngnh' // Used to trigger melee defeat conditions on surrender. +race_ancient_barracks_rush_chance 0 // If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file diff --git a/TFT/Undead/Settings.txt b/TFT/Undead/Settings.txt index af26374b8..91b8ce37c 100644 --- a/TFT/Undead/Settings.txt +++ b/TFT/Undead/Settings.txt @@ -1,80 +1,92 @@ -Variable Setting Value Comment -hero1_revive_prio 200 priority for reviving hero1 -hero2_revive_prio 180 priority for reviving hero2 -hero3_revive_prio 150 priority for reviving hero3 -prio_n_inc 2 priority increase for building needed buildings -prio_t_inc 1 priority increase in time -prio_q_inc 2 priority increase in quantity -farm_food2 -4 builds another farm at the same time when this near food used to food produced -farm_prio 400 priority for farm building -peon_prio 280 priority for peon building -expa_prio 280 priority for expansion building -expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) -expa_rebuild_prio 400 priority for rebuilding an expansion -peon_1_mine_number 5 number of peons to build when 1 mine is owned -peon_2_mines_number 10 number of peons to build when 2 mines are owned -peon_mines_number 15 number of peons to build when more mines are owned -min_peon_number_single_mine 5 minimum number of peons when 1 mine is owned -min_peon_number_double_mine 10 minimum number of peons when 2 mine is owned -min_peon_number_multi_mine 15 minimum number of peons when more than 1 mine is owned -strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) -relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy -kb_add1 8 priority added to all strategies having a building the computer already got as a key building -kb_add2 9 priority added to all strategies having a building the computer already started to build as key building -kb_add3 3 priority added to all strategies having both building the computer already got as key buildings -kb_add4 10 value for 2 of a key buildings -ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level -ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level -ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level -fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. -debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) -race_use_fountain true does the race use healing fountains ? -race_manual_loading false does the race need manual loading of wisps in goldmines ? -race_manual_loading_wisp 0 What is the unit to load ? -race_manual_loading_mine 0 What unit is it loaded in ? -race_towerrush_available false does the race have a towerrush ? -race_tower_id ZIGGURAT_1 what is the id of the races towers? -race_tower_upgrade ZIGGURAT_2 what is the id of the tower upgrade1 (core)? -race_towerrush_requirement GRAVEYARD what is the building required to build towers ? -race_towerrush_probability 25 how high (in percent) is the probability of doing a tower rush? -race_militia_expansion_available false does the race have a militia expansion ? -race_hero_number 4 how many racial heroes ? -race_simple_melee GHOUL a basic melee unit, only necessary when basic_melee is used -race_advanced_melee ABOMINATION an advanced melee unit to replace the basic one, only necessary when basic_melee is used -race_has_ghouls true has the race a ghoul-like wood harvester/fighter unit ? -race_ghouls_attack true do those ghouls go with the army on attacks ? -race_has_power_build false can multiple racial workers work on the same building ? -race_no_wood_harvest false has the race no wood harvesters ? -race_ignore_injured false should the race leave injured units at home ? -race_uses_mine_expansion true does the race expand with a mine building like undead ? -race_uses_shredder true does the race use the goblin shredder ? -race_militia_available false does the race have militia ? -race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? -race_militia_id 0 what is the militia unit type id? -race_militia_ability 0 what is the militia ability id ? -race_militia_hall_ability 0 what is the militia ability of the hall ? -race_militia_unitstring "" what is the unitstring/name of the militia ? -race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? -use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? -race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? -race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? -race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? -race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion -race_item_expansion_available false can expand with item building ? -race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? -race_item_sale_level 0 buy expand item need hall level ? -race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? -race_sell_ziggurats true does the race sell ziggurats that are at no more needed expansions ? -race_ziggurat_keep_distance 1200 keep ziggurat if this near another building except a ziggurat is -race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? -race_farms_front_limit 3 limit the number of farms at the front to this number -race_farms_at_mine 0 the first that many farms will be built at the mine -race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building -race_has_moonwells false Racial farms have healing properties -race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush -race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion -ghoul_prio 250 priority for ghoul building -race_min_ghouls 3 smallest number of ghouls to build at all times -race_max_ghouls 5 maximum number of ghouls to build in low lumber situations -groundid 'ewsp' Used to create path units, must be different from race peon -race_ancient_barracks_rush_chance 0 If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file +Variable Setting Value Comment +hero1_revive_prio 200 priority for reviving hero1 +hero2_revive_prio 180 priority for reviving hero2 +hero3_revive_prio 150 priority for reviving hero3 +prio_n_inc 2 priority increase for building needed buildings +prio_t_inc 1 priority increase in time +prio_q_inc 2 priority increase in quantity +farm_food2 -4 builds another farm at the same time when this near food used to food produced +farm_prio 400 priority for farm building +peon_prio 280 priority for peon building +expa_prio 280 priority for expansion building +expa_emergency_prio 500 priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted) +expa_rebuild_prio 400 priority for rebuilding an expansion +peon_1_mine_number 5 number of peons to build when 1 mine is owned +peon_2_mines_number 10 number of peons to build when 2 mines are owned +peon_mines_number 15 number of peons to build when more mines are owned +min_peon_number_single_mine 5 minimum number of peons when 1 mine is owned +min_peon_number_double_mine 10 minimum number of peons when 2 mine is owned +min_peon_number_multi_mine 15 minimum number of peons when more than 1 mine is owned +strat_food_persistence 3 * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) +relevant_strat_change_number 3 number of strategies with highest RPs that can be chosen when changing strategy +kb_add1 8 priority added to all strategies having a building the computer already got as a key building +kb_add2 9 priority added to all strategies having a building the computer already started to build as key building +kb_add3 3 priority added to all strategies having both building the computer already got as key buildings +kb_add4 10 value for 2 of a key buildings +ku_add1 4 priority added to all strategies having a upgrade the computer already got as key upgrade in first level +ku_add2 7 priority added to all strategies having a upgrade the computer already got as key upgrade in second level +ku_add3 8 priority added to all strategies having a upgrade the computer already got as key upgrade in third level +fav_unit_add 20 priority added to strategies havign the current profiles favorite unit as key units. +debug_strategy -1 this race is locked to this strategy number for testing.(-1 is unlocked) +race_use_fountain true does the race use healing fountains ? +race_manual_loading false does the race need manual loading of wisps in goldmines ? +race_manual_loading_wisp 0 What is the unit to load ? +race_manual_loading_mine 0 What unit is it loaded in ? +race_towerrush_available true does the race have a towerrush ? +race_tower_item SACRIFICIAL_SKULL if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER +race_tower_item_must true the item is build towers is must? +race_tower_item_quantity 1 how many items at a time , if can buy +race_tower_id ZIGGURAT_1 what is the id of the races towers? +race_tower_id_replace AVIARY if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 ZIGGURAT_2 what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 ZIGGURAT_FROST what is the id of the tower upgrade2 (secondary)? +race_tower_move false tower can move , like ELF tree or StarCraft human build fly? +race_tower_movestartstring "" what is the order of tower start move? -- like use root to loc move +race_tower_moveendstring "" what is the unorder of tower end move? +race_tower_bypeon false tower is peon become , like ELF? AI will compensate more 2 peon +race_tower_peon 2 the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less +race_towerrush_requirement GRAVEYARD what is the building required to build towers ? +race_towerrush_probability 17 how high (in percent) is the probability of doing a tower rush? +race_militia_expansion_available false does the race have a militia expansion ? +race_hero_number 4 how many racial heroes ? +race_simple_melee GHOUL a basic melee unit, only necessary when basic_melee is used +race_advanced_melee ABOMINATION an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_has_ghouls true has the race a ghoul-like wood harvester/fighter unit ? +race_ghouls_attack true do those ghouls go with the army on attacks ? +race_has_power_build false can multiple racial workers work on the same building ? +race_no_wood_harvest false has the race no wood harvesters ? +race_ignore_injured false should the race leave injured units at home ? +race_uses_mine_expansion true does the race expand with a mine building like undead ? +race_uses_shredder true does the race use the goblin shredder ? +race_militia_available false does the race have militia ? +race_militia_max_distance 1000 how far away from the town hall are the militia allowed ? +race_militia_id 0 what is the militia unit type id? +race_militia_ability 0 what is the militia ability id ? +race_militia_hall_ability 0 what is the militia ability of the hall ? +race_militia_unitstring "" what is the unitstring/name of the militia ? +race_militiaworker_unitstring "" what is the string of the unit that can be turned to militia ? +use_militia_only_on_bigger_threats false shall the computer only use militias against larger threats ? +race_ancient_expansion_available false can the race expand with an uprooted building that also helps fighting the creeps ? +race_ancient_expansion_probability 50 how high (in percent) is the probability of doing an ancient expansion when possible ? +race_ancient_expansion_strength 15 up to how much expansion strength is an ancient expansion allowed ? +race_ancient_expansion_help_id 0 the unit id of the unit that should help in ancient expansion +race_item_expansion_available false can expand with item building ? +race_item_expansion_probability 35 how high (in percent) is the probability of doing a item expansion ? +race_item_sale_level 0 buy expand item need hall level ? +race_item_expansion_item_id 0 what is expand item name(from StandardUnits.txt) ? +race_sell_ziggurats true does the race sell ziggurats that are at no more needed expansions ? +race_ziggurat_keep_distance 1200 keep ziggurat if this near another building except a ziggurat is +race_build_farms_front false should the race build farms towards the front (as soon as the front is computed) ? +race_farms_front_limit 3 limit the number of farms at the front to this number +race_farms_at_mine 0 the first that many farms will be built at the mine +race_max_expa_mine_distance 850 the maximum distance between the mine and the expansion building +race_has_moonwells false Racial farms have healing properties +race_towerrush_hero_rush_level 1 the bonus strength value hero must have to be able to do the tower rush +race_ancient_expansion_hero_rush_level 2 the bonus strength value hero must have to be able to do the ancient expansion +ghoul_prio 250 priority for ghoul building +race_min_ghouls 3 smallest number of ghouls to build at all times +race_max_ghouls 5 maximum number of ghouls to build in low lumber situations +groundid 'ewsp' Used to create path units, must be different from race peon +racial_burrow 0 Building id that can house peons/units and then shoot enemies. +structid 'ngnh' // Used to trigger melee defeat conditions on surrender. +race_ancient_barracks_rush_chance 0 // If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race \ No newline at end of file diff --git a/Templates/StrategyManager.txt b/Templates/StrategyManager.txt new file mode 100644 index 000000000..4fb861fbe --- /dev/null +++ b/Templates/StrategyManager.txt @@ -0,0 +1,324 @@ +button_new= +button_extract= +button_insert= +button_copy= +button_remove= +button_edit= +button_lock= +button_unlock= +button_quit= +button_edit_racial_builds= +button_edit_global= +button_edit_racial_settings= +button_compile= +button_compile_opt= +button_compile_vsai= +button_ok= +button_cancel= +button_yes= +placeholder_operate= +placeholder_ver= +placeholder_set= +placeholder_raceset= +placeholder_compile= +placeholder_setlang= +label_strategies= +label_profiles= +label_Init_code= +label_tier_code= +label_racial_Init_code= +label_racial_build= +err_file_not_found= +err_file_not_writing= +err_strategy_not_found_a= +err_strategy_not_found= +err_strategy_not_found_b= +err_strategy_not_complete= +err_strategy_not_complete_ai= +err_strategy_init_not_set= +err_strategy_init_not_complete= +err_strategy_build_set= +err_strategy_build_complete= +err_global_build_set= +err_profile_not_found_p= +err_not_file_s= +err_not_file_p= +message_remove_strategy= +message_remove_profile= +title_really= +title_strategy_manager= +title_profile_editor= +title_strategy_editor= +title_racial_builds_editor= +title_settings_editor= + +increases performance by checking stuff not so often= +how many computer players is needed tor the sleep multiplier to start increasing.= +how many computer players is needed tor the sleep multiplier to stop increasing.= +how much is the sleep multiplied when it's below the slm_start condition= +how much is the sleep multiplied when it's above the slm_end condition= +scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= +should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= +computers only repair buildings if they have more than this many workers= +computers only repair buildings when the town is under attack if they got more than this many workers= +Distance behind the army a zeppelin follows= +when is neutral heroes available in seconds /5= +how close to a shop do a unit have to be for buying?= +time in seconds the hero goes to a shop before it gives up if it haven't reached it= +time in seconds a hero tries to buy items at shop before giving up= +"every this * 5 seconds, the build array is reset"= +normalizing strategy priorities added from strengths with this value= +the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= +strategy when attacking enemy players= +"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= +Distance from ranged units enemy units can be targeted with focus fire= +Distance from melee units enemy units can be targeted with focus fire= +Units flee from battle if the health goes below his % value(0.25 is 25%)= +Units flee from battle if the health goes below this= +how near the units a statue used by undead should be in the fights= +units will stay within this radius from a hero that is using town portal= +computers give extra gold above this value to other computers on the same team in need of gold= +computers give extra lumber above this value to other computers on the same team in need of lumber= +how many towns is a computer allowed to have?= +Add the [AMAI] tag in front of name= +Add the current skill after the name= +how many different harass groups you can use= +"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= +the radius araound a mine computers check for creeps before expanding there= +how far away from ranged enemy units harassing units attack a inferior enemy unit= +how far away from melee enemy units harassing units attack a inferior enemy unit= +how far away from ranged enemy units harassing units turn and flee= +how far away from melee enemy units harassing units turn and flee= +computers use chat taunts= +a enemy army within this distance is counted as a full threat= +a enemy army outside this distance is counted as no threat= +how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= +"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= +accepted threat level increase starts at this time= +and ends at that time= +it starts with this value= +and ends with that value= +accepted threat level multiplier increases at that enemy number= +until that enemy number= +the multiplier starts for accepted threat level starts with this= +and ends with this= +Army uses TP to get home and defend if a threat is greater than this= +Army uses TP to get home and defend if a threat is greater than this= +Army won't use TP home if they are closer to base than this and a low threat level appears= +Army won't use TP home if they are closer to base than this and a high threat level appears= +how big the army need to be for use of TP to threatened town= +minimum threat level TP use is allowed on= +how many peons does a goblin shredder replace in lumber harvesting= +computers don't build any workers for lumber harvesting if they have more lumber than this= +computers build all needed workers for lumber harvesting if they have lumber lower than this= +does the version have neutral heroes ?= +how many neutral heroes ?= +can only heroes buy stuff ?= +what is the versions food limit ?= +units within that radius are considered belonging to the current battle= +"same as with normal_battle_radius, but for battles against creeps"= +how near a mine a enemy building must be to make amai recognize it as taken= +what is the base strength of a hero (the level number is added to get the actual strength) ?= +at what level do the heroes get their ultimates ?= +how much extra strength does the ultimate give to the hero ?= +how far away do creeps attack buildings ?= +can mercs be bought at night without waking up creeps ?= +check for towers in this radius around a target= +check for towers in this radius during harassing= +don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= +Should the buildings of the AI be destroyed on defeat or given to neutral player ?= +reform the attack group (getting new units) every that time on an attack (in seconds / 2)= +the distance of the front locations from the start location= +Does this version have heroes?= +Enable to force computers to have there fixed name instead of a profile name= +Bonus strength added to minor creep camps= +Bonus strength added to mediocre creep camps= +Bonus strength added to major creep camps= +Can turn on for debugging mode to display debug type messages= +New strategy priority must be larger than this multiple to the current strategy= +Set to true to stop amai from giving up early when it detects its going to lose= +Priority to choose the first line of hero skills= +Priority to choose the second line of hero skills= +Priority to choose the third line of hero skills= +priority added to heroes to be picked if they are favorites of the used profile= +The optimal number of peons that should be harvesting gold= +Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= +Multiplier to players strength at highest aggression to measure if amai allowed to flee= +Multipler to players strength at highest aggression to measure if amai will flee= +Aggression below this uses the lowest strength flee multiplier= +Agression above this uses the highest strength flee multiplier= + +priority for reviving hero1= +priority for reviving hero2= +priority for reviving hero3= +priority increase for building needed buildings= +priority increase in time= +priority increase in quantity= +builds another farm at the same time when this near food used to food produced= +priority for farm building= +priority for peon building= +priority for expansion building= +priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= +priority for rebuilding an expansion= +number of peons to build when 1 mine is owned= +number of peons to build when 2 mines are owned= +number of peons to build when more mines are owned= +minimum number of peons when 1 mine is owned= +minimum number of peons when 2 mines are owned= +minimum number of peons when more than 1 mine is owned= +* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= +number of strategies with highest RPs that can be chosen when changing strategy= +priority added to all strategies having a building the computer already got as a key building= +priority added to all strategies having a building the computer already started to build as key building= +priority added to all strategies having both building the computer already got as key buildings= +value for 2 of a key buildings= +priority added to all strategies having a upgrade the computer already got as key upgrade in first level= +priority added to all strategies having a upgrade the computer already got as key upgrade in second level= +priority added to all strategies having a upgrade the computer already got as key upgrade in third level= +priority added to strategies havign the current profiles favorite unit as key units.= +this race is locked to this strategy number for testing.(-1 is unlocked)= +does the race use healing fountains ?= +does the race need manual loading of wisps in goldmines ?= +What is the unit to load ?= +What unit is it loaded in ?= +does the race have a towerrush ?= +if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= +the item is build towers is must?= +"how many items at a time , if can buy"= +what is the id of the races towers?= +"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= +what is the id of the tower upgrade1 (core)?= +what is the id of the tower upgrade2 (secondary)?= +"tower can move , like ELF tree or StarCraft human build fly?"= +what is the order of tower start move? -- like use root to loc move= +what is the unorder of tower end move?= +"tower is peon become , like ELF? AI will compensate more 2 peon"= +"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= +what is the building required to build towers ?= +how high (in percent) is the probability of doing a tower rush?= +does the race have a militia expansion ?= +how many racial heroes ?= +"a basic melee unit, only necessary when basic_melee is used"= +"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= +has the race a ghoul-like wood harvester/fighter unit ?= +do those ghouls go with the army on attacks ?= +can multiple racial workers work on the same building ?= +has the race no wood harvesters ?= +should the race leave injured units at home ?= +does the race expand with a mine building like undead ?= +does the race use the goblin shredder ?= +does the race have militia ?= +how far away from the town hall are the militia allowed ?= +what is the militia unit type id?= +what is the militia ability id ?= +what is the militia ability of the hall ?= +what is the unitstring/name of the militia ?= +what is the string of the unit that can be turned to militia ?= +shall the computer only use militias against larger threats ?= +can the race expand with an uprooted building that also helps fighting the creeps ?= +how high (in percent) is the probability of doing an ancient expansion when possible ?= +up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= +the unit id of the unit that should help in ancient expansion= +can expand with item building ?= +how high (in percent) is the probability of doing a item expansion ?= +buy expand item need hall level ?= +what is expand item name(from StandardUnits.txt) ?= +does the race sell ziggurats that are at no more needed expansions ?= +keep ziggurat if this near another building except a ziggurat is= +should the race build farms towards the front (as soon as the front is computed) ?= +limit the number of farms at the front to this number= +the first that many farms will be built at the mine= +the maximum distance between the mine and the expansion building= +Racial farms have healing properties= +the bonus strength value hero must have to be able to do the tower rush= +the bonus strength value hero must have to be able to do the ancient expansion= +priority for ghoul building= +smallest number of ghouls to build at all times= +maximum number of ghouls to build in low lumber situations= +" Used to create path units, must be different from race peon"= +Building id that can house peons/units and then shoot enemies.= +// Used to trigger melee defeat conditions on surrender.= +"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= + +Strategy Function Name= +Default Name= +Default Report= +key_building1= +key_building2= +key_upgrade1= +key_upgrade2= +key_unit= +beginning_strat= +strat_minimum_time (in seconds/6)= +strategy_type= +main_strategy_tier= +base rp= +ally bonus= +1on1 bonus= +FFA bonus= +random enemy bonus= +ELF enemy bonus= +HUMAN enemy bonus= +ORC enemy bonus= +UNDEAD enemy bonus= +ELF ally bonus= +HUMAN ally bonus= +ORC ally bonus= +UNDEAD ally bonus= +anti air strength= +anti casters strength= +anti towers strength= +anti piercing strength= +anti normal strength= +anti siege strength= +anti magic strength= +anti unarmored strength= +anti lightarmor strength= +anti mediumarmor strength= +anti heavyarmor strength= +expansion time= +second expansion time= +first hero bonus= +first hero bonus amount= +second hero bonus= +second hero bonus amount= +third hero bonus= +third hero bonus amount= +enemy_ELF add agg t1= +enemy_ELF add agg t2= +enemy_ELF add agg t3= +enemy_HUMAN add agg t1= +enemy_HUMAN add agg t2= +enemy_HUMAN add agg t3= +enemy_ORC add agg t1= +enemy_ORC add agg t2= +enemy_ORC add agg t3= +enemy_UNDEAD add agg t1= +enemy_UNDEAD add agg t2= +enemy_UNDEAD add agg t3= + +Profile Name= +Race= +Aggression= +Uncertainty= +Minimum Attack Strength= +Build Farm at left food= +first expansion time= +second expansion time= +strategy persistence= +influences number of factories built= +Taunt Rate= +Expansion Target Bonus= +Hard coded AI target bonus= +Hard coded AI target rate= +Surrender Value= +Favorite ELF Hero= +Favorite HUMAN Hero= +Favorite ORC Hero= +Favorite UNDEAD Hero= +Favorite Neutral Hero= +Favorite ELF Unit= +Favorite HUMAN Unit= +Favorite ORC Unit= +Favorite UNDEAD Unit= +Rare Profile= \ No newline at end of file From fcb0def586f200dae27ef37114d18c06d0a275bc Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 9 Feb 2025 00:38:02 +0800 Subject: [PATCH 07/42] Update common.eai --- common.eai | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/common.eai b/common.eai index 8c0883252..e48c1de41 100644 --- a/common.eai +++ b/common.eai @@ -270,7 +270,7 @@ globals real focus_fire_limit = 35 // if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero real focus_fire_ranged_dist = 600 // Distance from ranged units enemy units can be targeted with focus fire real focus_fire_melee_dist = 50 // Distance from melee units enemy units can be targeted with focus fire - real flee_health_percentage = 0.25 // Units flee from battle if the health goes below his % value(0.25 = 25%) + real flee_health_percentage = 0.25 // Units flee from battle if the health goes below his % value(0.25 is 25%) real flee_minimum_health = 100 // Units flee from battle if the health goes below this real statue_distance = 300 // how near the units a statue used by undead should be in the fights real teleport_radius = 800 // units will stay within this radius from a hero that is using town portal @@ -352,15 +352,16 @@ globals integer farm_food2 = 1 // builds another farm at the same time when this near food used to food produced integer farm_prio = 400 // priority for farm building integer peon_prio = 280 // priority for peon building - integer ghoul_prio = 250 // priority for ghoul building + integer ghoul_prio = 250 // priority for ghoul building integer expa_prio = 200 // priority for expansion building integer expa_emergency_prio = 300 // priority for rebuilding an expansion integer expa_rebuild_prio = 200 // priority for rebuilding an expansion - integer peon_1_mine_number = 15 // maximum number of peons to build when 1 mine is owned (redundent if race uses ghouls) - integer peon_2_mines_number = 20 // maximum number of peons to build when 2 mines are owned (redundent if race uses ghouls) - integer peon_mines_number = 24 // maximum number of peons to build when more mines are owned (redundent if race uses ghouls) - integer min_peon_number_single_mine = 6 // minimum number of peons when 1 mine is owned - integer min_peon_number_multi_mine = 11 // minimum number of peons when more than 1 mine is owned + integer peon_1_mine_number = 12 // maximum number of peons to build when 1 mine is owned (redundent if race uses ghouls) + integer peon_2_mines_number = 17 // maximum number of peons to build when 2 mines are owned (redundent if race uses ghouls) + integer peon_mines_number = 22 // maximum number of peons to build when more mines are owned (redundent if race uses ghouls) + integer min_peon_number_single_mine = 8 // minimum number of peons when 1 mine is owned + integer min_peon_number_double_mine = 13 // minimum number of peons when 2 mines are owned + integer min_peon_number_multi_mine = 18 // minimum number of peons when more than 1 mine is owned integer strat_food_persistence = 2 // * current food use added to priority for current strategy (prevents computers from changing styrategy when having large army) integer relevant_strat_change_number = 3 // number of strategies with highest RPs that can be chosen when changing strategy integer kb_add1 = 8 // priority added to all strategies having a building the computer already got as a key building @@ -371,25 +372,35 @@ globals integer ku_add2 = 7 // priority added to all strategies having a upgrade the computer already got as key upgrade in second level integer ku_add3 = 8 // priority added to all strategies having a upgrade the computer already got as key upgrade in third level integer fav_unit_add = 20 // priority added to strategies havign the current profiles favorite unit as key units. - integer debug_strategy = -1 // this race is locked to this strategy number for testing.(-1 is unlocked) + integer debug_strategy = -1 // this race is locked to this strategy number for testing.(-1 is unlocked) boolean race_use_fountain = true // does the race use healing fountains ? boolean race_manual_loading = true // does the race need manual loading of wisps in goldmines ? integer race_manual_loading_wisp = 0 // integer race_manual_loading_mine = 0 // boolean race_towerrush_available = false // does the race have a towerrush ? + integer race_tower_item = 0 // if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER + boolean race_tower_item_must = false // the item is build towers is must? + integer race_tower_item_quantity = 0 // how many items at a time , if can buy integer race_towerrush_requirement = 0 // what is the building required to build towers ? integer race_tower_id = 0 // what is the id of the races towers? - integer race_tower_upgrade = 0 //what is the id of the tower upgrade ? - integer race_towerrush_probability = 33 // how high (in percent) is the probability of doing a tower rush? - integer race_towerrush_hero_rush_level = 2 // the bonus strength value hero must have to be able to do the tower rush + integer race_tower_id_replace = 0 // if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop + integer race_tower_upgrade1 = 0 //what is the id of the tower upgrade1 (core)? + integer race_tower_upgrade2 = 0 //what is the id of the tower upgrade2 (secondary)? + boolean race_tower_move = false //tower can move , like ELF tree or StarCraft human build fly? + string race_tower_movestartstring = "" //what is the order of tower start move? -- like use root to loc move + string race_tower_moveendstring = "" //what is the unorder of tower end move? + boolean race_tower_bypeon = false //tower is peon become , like ELF? AI will compensate more 2 peon + integer race_tower_peon = 2 // the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less + integer race_towerrush_probability = 5 // how high (in percent) is the probability of doing a tower rush? + integer race_towerrush_hero_rush_level = 1 // the bonus strength value hero must have to be able to do the tower rush boolean race_militia_expansion_available = false // does the race have a militia expansion ? integer race_hero_number = 4 // how many racial heroes ? integer race_simple_melee = 0 // a basic melee unit, only necessary when basic_melee is used integer race_advanced_melee = 0 // an advanced melee unit to replace the basic one, only necessary when basic_melee is used boolean race_has_ghouls = false // has the race a ghoul-like wood harvester/fighter unit ? boolean race_ghouls_attack = true // do those ghouls go with the army on attacks ? - integer race_min_ghouls = 2 // smallest number of ghouls to build at all times - integer race_max_ghouls = 5 // maximum number of ghouls to build in low lumber situations + integer race_min_ghouls = 2 // smallest number of ghouls to build at all times + integer race_max_ghouls = 5 // maximum number of ghouls to build in low lumber situations boolean race_has_power_build = false // can multiple racial workers work on the same building ? boolean race_no_wood_harvest = false // has the race no wood harvesters ? boolean race_ignore_injured = false // should the race leave injured units at home ? @@ -407,23 +418,21 @@ globals integer race_ancient_expansion_strength = 15 // up to how much expansion strength is an ancient expansion allowed ? integer race_ancient_expansion_help_id = 'earc' // the unit id of the unit that should help in ancient expansion integer race_ancient_expansion_hero_rush_level = 2 // the bonus strength value hero must have to be able to do the ancient expansion - integer race_item_expansion_item_id = 0 // what is expand item name(from StandardUnits.txt) ? boolean race_item_expansion_available = false // can expand with item building ? integer race_item_expansion_probability = 5 // how high (in percent) is the probability of doing a item expansion? integer race_item_sale_level = 0 // buy expand item need hall level ? + integer race_item_expansion_item_id = 0 // what is expand item name(from StandardUnits.txt) ? boolean race_sell_ziggurats = false // does the race sell ziggurats that are at no more needed expansions ? real race_ziggurat_keep_distance = 1500 // keep ziggurat if this near another building except a ziggurat is boolean race_build_farms_front = false // should the race build farms towards the front (as soon as the front is computed) ? integer race_farms_front_limit = 4 // limit the number of farms at the front to this number integer race_farms_at_mine = 0 // the first that many farms will be built at the mine real race_max_expa_mine_distance = 850 // the maximum distance between the mine and the expansion building - integer min_peon_number_double_mine = 11 // minimum number of peons when 2 mines are owned boolean race_has_moonwells = false // Racial farms have healing properties integer groundid = 'ewsp' // Used to create path units, must be different from race peon integer racial_burrow = 0 // Building id that can house peons/units and then shoot enemies. integer structid = 'ngnh' // Used to trigger melee defeat conditions on surrender. integer race_ancient_barracks_rush_chance = 0 // If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race - #PRAGMA END RACIAL SETTINGS //============================================================== From 9346ae2ebdfe2579c8a62eb3f3e96e8e734a01ad Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 9 Feb 2025 00:47:50 +0800 Subject: [PATCH 08/42] Update common.eai --- common.eai | 1 + 1 file changed, 1 insertion(+) diff --git a/common.eai b/common.eai index e48c1de41..d317d9044 100644 --- a/common.eai +++ b/common.eai @@ -384,6 +384,7 @@ globals integer race_towerrush_requirement = 0 // what is the building required to build towers ? integer race_tower_id = 0 // what is the id of the races towers? integer race_tower_id_replace = 0 // if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop + integer race_tower_upgrade = 0 //what is the id of the tower upgrade ? integer race_tower_upgrade1 = 0 //what is the id of the tower upgrade1 (core)? integer race_tower_upgrade2 = 0 //what is the id of the tower upgrade2 (secondary)? boolean race_tower_move = false //tower can move , like ELF tree or StarCraft human build fly? From e87f309644c82435a4121b94d85462971fc94f3c Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 9 Feb 2025 00:59:26 +0800 Subject: [PATCH 09/42] Add files via upload --- ROC/Orc/Settings.txt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ROC/Orc/Settings.txt b/ROC/Orc/Settings.txt index e4df49535..f9f09101d 100644 --- a/ROC/Orc/Settings.txt +++ b/ROC/Orc/Settings.txt @@ -39,6 +39,9 @@ race_tower_item 0 if the race_tower_id need Blig land (AbilityId 'Abgl') or shop race_tower_item_must false the item is build towers is must? race_tower_item_quantity 0 how many items at a time , if can buy race_tower_id ORC_WATCH_TOWER what is the id of the races towers? +race_tower_id_replace 0 if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop +race_tower_upgrade1 0 what is the id of the tower upgrade1 (core)? +race_tower_upgrade2 0 what is the id of the tower upgrade2 (secondary)? race_tower_move false tower can move , like ELF tree or StarCraft human build fly? race_tower_movestartstring "" what is the order of tower start move? -- like use root to loc move race_tower_moveendstring "" what is the unorder of tower end move? @@ -48,8 +51,8 @@ race_towerrush_requirement FORGE what is the building required to build towers ? race_towerrush_probability 25 how high (in percent) is the probability of doing a tower rush? race_militia_expansion_available false does the race have a militia expansion ? race_hero_number 3 how many racial heroes ? -race_simple_melee 0 a basic melee unit, only necessary when basic_melee is used -race_advanced_melee 0 an advanced melee unit to replace the basic one, only necessary when basic_melee is used +race_simple_melee GRUNT a basic melee unit, only necessary when basic_melee is used +race_advanced_melee RAIDER an advanced melee unit to replace the basic one, only necessary when basic_melee is used race_has_ghouls false has the race a ghoul-like wood harvester/fighter unit ? race_has_power_build false can multiple racial workers work on the same building ? race_no_wood_harvest false has the race no wood harvesters ? From 26401167e4ca6134036ebf2b6fcd33ab2275311a Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 9 Feb 2025 17:35:43 +0800 Subject: [PATCH 10/42] Add files via upload --- REFORGED/GlobalSettings.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/REFORGED/GlobalSettings.txt b/REFORGED/GlobalSettings.txt index e91a8b17d..c57126e5f 100644 --- a/REFORGED/GlobalSettings.txt +++ b/REFORGED/GlobalSettings.txt @@ -29,7 +29,7 @@ wood_exchange_level 350 computers give extra lumber above this value to other co max_towns 5 how many towns is a computer allowed to have? add_tag true Add the [AMAI] tag in front of name add_skill true Add the current skill after the name -fav_hero_add 10 priority added to heroes to be picked if they are favorites of the used profile +fav_hero_add 10 priority added to heroes to be picked if they are favorites of the used profile max_harass_groups 10 how many different harass groups you can use attacking_aggression 2 the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5 expansion_radius 1250 the radius araound a mine computers check for creeps before expanding there From 00ffcdfe15869bc632f35e682a8948fe1b527b92 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 9 Feb 2025 17:50:15 +0800 Subject: [PATCH 11/42] Add files via upload --- AMAIStrategyManager.pl | 20 +- Languages/Chinese/StrategyManager.txt | 378 ++++++++++++----------- Languages/Deutsch/StrategyManager.txt | 372 +++++++++++----------- Languages/English/StrategyManager.txt | 372 +++++++++++----------- Languages/French/StrategyManager.txt | 372 +++++++++++----------- Languages/Norwegian/StrategyManager.txt | 372 +++++++++++----------- Languages/Portuguese/StrategyManager.txt | 372 +++++++++++----------- Languages/Romanian/StrategyManager.txt | 372 +++++++++++----------- Languages/Russian/StrategyManager.txt | 372 +++++++++++----------- Languages/Spanish/StrategyManager.txt | 372 +++++++++++----------- Languages/Swedish/StrategyManager.txt | 372 +++++++++++----------- Templates/StrategyManager.txt | 372 +++++++++++----------- 12 files changed, 2077 insertions(+), 2041 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 8e6294bfb..a4dff5f7f 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -65,7 +65,11 @@ sub get_translation { if (exists $lang_ref->{$key} && $lang_ref->{$key} !~ /^\s*$/) { return sprintf($lang_ref->{$key}, @args); } - return join(@args) . " $key" ; + if (@args) { + return join(@args) . " $key"; + } else { + return "$key"; + } } my $main = MainWindow->new(-title => get_translation('title_strategy_manager')); @@ -840,7 +844,14 @@ sub FillTable { my $l; my $i = 0; foreach my $v (@opt) { - $l = $strattable->Label(-text => get_translation($v), -anchor => 'e'); + my $translated_desc = get_translation($i); + if ($translated_desc eq $i) { + $translated_desc = get_translation($v); + if ($translated_desc eq $i) { + $translated_desc = $v; + } + } + $l = $strattable->Label(-text => $translated_desc, -anchor => 'e'); $strattable->put($i, 0, $l); $i++; } @@ -1138,7 +1149,10 @@ sub LoadSettings { my $entry_val = $table->Entry(-width => 25); $entry_val->insert('end', $value); $table->put($i, 1, $entry_val); - my $translated_desc = get_translation($description); + my $translated_desc = get_translation($option); + if ($translated_desc eq $option) { + $translated_desc = $description; + } my $label_desc = $table->Label(-text => $translated_desc, -anchor => 'w'); $table->put($i, 2, $label_desc); $i++; diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt index 7a536b948..d6f6e7017 100644 --- a/Languages/Chinese/StrategyManager.txt +++ b/Languages/Chinese/StrategyManager.txt @@ -28,8 +28,8 @@ label_Init_code=策略初始化设置 label_tier_code=%s 本基地训练/研究逻辑 label_racial_Init_code=全局限制 label_racial_build=全局训练/研究逻辑 -err_file_not_found=文件丢失: -err_file_not_writing=文件不能写入: +err_file_not_found=%s 文件丢失 +err_file_not_writing=%s 文件不能写入 err_strategy_not_found_a=AI文件中找不到策略 err_strategy_not_found=策略表中找不到策略 err_strategy_not_found_b=构筑表中找不到策略 @@ -52,193 +52,195 @@ title_strategy_editor=AMAI 策略编辑器 title_racial_builds_editor=AMAI 种族构筑编辑器 title_settings_editor=AMAI 参数编辑器 -increases performance by checking stuff not so often=睡眠倍率,增加可以提高性能 -how many computer players is needed tor the sleep multiplier to start increasing.=多少AI才能开始增加睡眠倍率? -how many computer players is needed tor the sleep multiplier to stop increasing.=多少AI才能停止增加睡眠倍率? -how much is the sleep multiplied when it's below the slm_start condition=未达到上述AI数量时,睡眠倍率是多少? -how much is the sleep multiplied when it's above the slm_end condition=超过上述AI数量时,睡眠倍率是多少? -scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move=扫描英雄周围多少距离来判定英雄是否被敌人包围或有被包围的危险,以便逃离? -should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?=AI是此时间内保持维修人口,还是在达到维护人口临界值时一次性保持? -computers only repair buildings if they have more than this many workers=仅当AI拥有超过此数量的工人时,才会修理建筑物? -computers only repair buildings when the town is under attack if they got more than this many workers=只有当基地受到攻击且AI拥有超过该数量工人时,才会修理建筑物? -Distance behind the army a zeppelin follows=飞艇跟随军队应保持多远距离? -when is neutral heroes available in seconds /5=中立英雄在多少秒后可用(时间需除以5) -how close to a shop do a unit have to be for buying?=需要离商店多近才可以购买单位或物品? -time in seconds the hero goes to a shop before it gives up if it haven't reached it=英雄在前往商店时,最多持续多久?超时仍未达到会放弃本次购买 -time in seconds a hero tries to buy items at shop before giving up=英雄在商店购买时,最久会停留多久(秒)?主要是无库存时兜底 -every this * 5 seconds, the build array is reset=构建数组重置周期,每隔此数值*5秒 -normalizing strategy priorities added from strengths with this value=此值用于规范在优势时添加战略的优先级 -the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy=如果AI的主城等级与特定策略相同,优先使用该策略的概率是多少? -strategy when attacking enemy players=攻击敌人的策略 -if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero=如果敌方英雄的生命值低于战斗中远程攻击者的总和乘以此值,AI会集火该英雄 -Distance from ranged units enemy units can be targeted with focus fire=远程单位集火距离 -Distance from melee units enemy units can be targeted with focus fire=近战单位集火距离 -Units flee from battle if the health goes below his % value(0.25 is 25%)=单位生命值低于百分之几(0.25 即 百分之25)时要逃离战场? -Units flee from battle if the health goes below this=单位生命值低于多少时要逃离战场? -how near the units a statue used by undead should be in the fights=不死族雕像在战斗时应该保持多远? -units will stay within this radius from a hero that is using town portal=使用回城卷轴时,回城英雄周围的单位应呆在多远? -computers give extra gold above this value to other computers on the same team in need of gold=AI将超出此值的额外黄金给予其他需要金币的AI盟友 -computers give extra lumber above this value to other computers on the same team in need of lumber=AI将超出此值的额外木材给予其他需要金币的AI盟友 -how many towns is a computer allowed to have?=AI最大该拥有几个基地??(以三种等级主城数量之和判断) -Add the [AMAI] tag in front of name=在AI名称前添加[AMAI]标签? -Add the current skill after the name=在AI名称后添加难度标签? -how many different harass groups you can use=AI可以使用的多个骚扰组? -the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5=AI基础侵略值,值越高越激进。建议范围:-5到5 -the radius araound a mine computers check for creeps before expanding there=AI在开矿之前检查金矿附近怪物的半径 -how far away from ranged enemy units harassing units attack a inferior enemy unit=骚扰组进攻劣等敌方单位时,要与远程敌方单位有多远距离? -how far away from melee enemy units harassing units attack a inferior enemy unit=骚扰组攻击劣等敌方单位时,要与近战敌方单位有多远距离? -how far away from ranged enemy units harassing units turn and flee=骚扰组在距离远程敌方单位多远时逃跑? -how far away from melee enemy units harassing units turn and flee=骚扰组在距离近战敌方单位多远时逃跑? -computers use chat taunts=AI聊天时会嘲讽? -a enemy army within this distance is counted as a full threat=多远距离内的敌军被视为完全威胁? -a enemy army outside this distance is counted as no threat=多远距离外的敌军不被视为威胁? -how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance=随着敌军从无威胁距离转为完全威胁距离,威胁增加的速度是多少? -how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town=当敌军接近时,对基地的威胁值增加多少?值越高威胁越大 -accepted threat level increase starts at this time=此值威胁级别开始增加 -and ends at that time=此值威胁级别结束增加 -it starts with this value=威胁级别初始值 -and ends with that value=威胁级别终值 -accepted threat level multiplier increases at that enemy number=威胁级别倍数在敌军数量达到该值时增加 -until that enemy number=威胁级别倍数在敌军数量达到该值时不再增加 -the multiplier starts for accepted threat level starts with this=威胁级别倍数初始值 -and ends with this=威胁级别倍数终值 -Army uses TP to get home and defend if a threat is greater than this=在威胁级别较低时,如果威胁级别大于此值,军队使用回城卷轴 -Army uses TP to get home and defend if a threat is greater than this=在威胁级别较高时,如果威胁级别大于此值,军队使用回城卷轴 -Army won't use TP home if they are closer to base than this and a low threat level appears=在威胁级别较低时,军队在离基地多近时不使用回城卷轴? -Army won't use TP home if they are closer to base than this and a high threat level appears=在威胁级别较高时,军队在离基地多近时不使用回城卷轴? -how big the army need to be for use of TP to threatened town=使用回城卷轴所需的军队规模 -minimum threat level TP use is allowed on=允许使用回城卷轴的最低威胁级别 -how many peons does a goblin shredder replace in lumber harvesting=一个伐木机的伐木效率相当于几个工人? -computers don't build any workers for lumber harvesting if they have more lumber than this=AI拥有多少木材后,不再在增加用于采伐木材的工人数量? -computers build all needed workers for lumber harvesting if they have lumber lower than this=AI拥有多少黄金后,不再在增加用于采伐木材的工人数量? -does the version have neutral heroes ?=该版本是否有中立英雄? -how many neutral heroes ?=有多少位中立英雄? -can only heroes buy stuff ?=只有英雄能买单位或物品吗? -what is the versions food limit ?=该版本的人口上限是多少? -units within that radius are considered belonging to the current battle=单位的常规仇恨距离是多少? -same as with normal_battle_radius, but for battles against creeps=野怪的仇恨距离是多少? -how near a mine a enemy building must be to make amai recognize it as taken=敌方建筑必须离矿点多近才能让AMAI识别为已被占领? -what is the base strength of a hero (the level number is added to get the actual strength) ?=英雄的基础强度是多少(实际强度为等级加上基础强度)? -at what level do the heroes get their ultimates ?=英雄在几级可以学大招? -how much extra strength does the ultimate give to the hero ?=大招会给英雄增加多少额外强度? -how far away do creeps attack buildings ?=野怪攻击建筑物的距离是多少? -can mercs be bought at night without waking up creeps ?=在晚上购买雇佣兵不会惊醒野怪? -check for towers in this radius around a target=在目标周围多少范围内检测塔? -check for towers in this radius during harassing=在骚扰期间,在多少范围内检测塔? -don't allow strategy change unless the maximum strength of all enemy players in the game is above this.=游戏中所有敌方玩家的最大强度都超此值时,才允许更改策略。 -Should the buildings of the AI be destroyed on defeat or given to neutral player ?=AI的建筑在战败时应该被摧毁还是交给中立玩家? -reform the attack group (getting new units) every that time on an attack (in seconds / 2)=每次攻击时重新组建攻击组(获取新单位)的间隔为多少(秒/2)? -the distance of the front locations from the start location=基地前哨位置距离出生点多远? -Does this version have heroes?=此版本英雄是否可用? -Enable to force computers to have there fixed name instead of a profile name=AI应该使用固定名称而不是档案名称? -Bonus strength added to minor creep camps=绿点野怪额外强度 -Bonus strength added to mediocre creep camps=黄点野怪额外强度 -Bonus strength added to major creep camps=红点野怪额外强度 -Can turn on for debugging mode to display debug type messages=打开调试模式? -New strategy priority must be larger than this multiple to the current strategy=新策略优先级必须大于当前策略几倍? -Set to true to stop amai from giving up early when it detects its going to lose=设为true可阻止AMAI过早放弃游戏 -Priority to choose the first line of hero skills=英雄选择第一技能的概率 -Priority to choose the second line of hero skills=英雄选择第二技能的概率 -Priority to choose the third line of hero skills=英雄选择第三技能的概率 -priority added to heroes to be picked if they are favorites of the used profile=为档案最爱英雄添加多少概率? -The optimal number of peons that should be harvesting gold=黄金采集最佳工人数量 -Multiplier to players strength at lowest aggression to measure if amai is allowed to flee=最低侵略性下玩家强度的倍数,用于衡量是否允许AMAI逃跑 -Multiplier to players strength at highest aggression to measure if amai allowed to flee=最高侵略性下玩家强度的倍数,用于衡量是否允许AMAI逃跑 -Multipler to players strength at highest aggression to measure if amai will flee=最高侵略度下玩家强度的倍数,用于衡量AMAI是否会逃跑 -Aggression below this uses the lowest strength flee multiplier=侵略性低于多少时,使用最低强度的逃跑倍数 -Agression above this uses the highest strength flee multiplier=侵略性高于多少时,使用最高强度的逃跑倍数 +sleep_multiplier=睡眠倍率,增加可以提高性能 +slm_start=多少AI才能开始增加睡眠倍率? +slm_end=多少AI才能停止增加睡眠倍率? +slm_start_mult=未达到上述AI数量时,睡眠倍率是多少? +slm_end_mult=超过上述AI数量时,睡眠倍率是多少? +hero_radius=扫描英雄周围多少距离来判定英雄是否被敌人包围或有被包围的危险,以便逃离? +use_linear_upkeep_saving=AI是此时间内保持维修人口,还是在达到维护人口临界值时一次性保持? +repair_threshold=仅当AI拥有超过此数量的工人时,才会修理建筑物? +repair_threshold_threatened=只有当基地受到攻击且AI拥有超过该数量工人时,才会修理建筑物? +max_follow_dist=飞艇跟随军队应保持多远距离? +neutral_hero_time=中立英雄在多少秒后可用(时间需除以5) +buy_distance=需要离商店多近才可以购买单位或物品? +buy_timeout_large=英雄在前往商店时,最多持续多久?超时仍未达到会放弃本次购买 +buy_timeout_small=英雄在商店购买时,最久会停留多久(秒)?主要是无库存时兜底 +rp_strat_normal=构建数组重置周期,每隔此数值*5秒 +build_array_reset_time=此值用于规范在优势时添加战略的优先级 +strategy_tier_bonus=如果AI的主城等级与特定策略相同,优先使用该策略的概率是多少? +attacking_strategy=攻击策略(与战术策略不同) +focus_fire_limit=如果敌方英雄的生命值低于战斗中远程攻击者的总和乘以此值,AI会集火该英雄 +focus_fire_ranged_dist=远程单位集火距离 +focus_fire_melee_dist=近战单位集火距离 +flee_health_percentage=单位生命值低于百分之几(0.25 即 百分之25)时要逃离战场? +flee_minimum_health=单位生命值低于多少时要逃离战场? +statue_distance=不死族雕像在战斗时应该保持多远? +teleport_radius=使用回城卷轴时,回城英雄周围的单位应呆在多远? +gold_exchange_level=AI将超出此值的额外黄金给予其他需要金币的AI盟友 +wood_exchange_level=AI将超出此值的额外木材给予其他需要金币的AI盟友 +max_towns=AI最大该拥有几个基地??(以三种等级主城数量之和判断) +add_tag=在AI名称前添加[AMAI]标签? +add_skill=在AI名称后添加难度标签? +fav_hero_add=优先选择档案偏好英雄 +max_harass_groups=AI可以使用的多个骚扰组? +attacking_aggression=AI基础侵略值,值越高越激进。建议:-5到5 +expansion_radius=AI在开矿之前检查金矿附近怪物的半径 +harass_radius_attack_ranged=骚扰组进攻劣等敌方单位时,要与远程敌方单位有多远距离? +harass_radius_attack_melee=骚扰组攻击劣等敌方单位时,要与近战敌方单位有多远距离? +harass_radius_flee_ranged=骚扰组在距离远程敌方单位多远时逃跑? +harass_radius_flee_melee=骚扰组在距离近战敌方单位多远时逃跑? +chatting=AI会发送聊天? +full_threat_distance=多远距离内的敌军被视为完全威胁? +no_threat_distance=多远距离外的敌军不被视为威胁? +distance_threat_exponent=随着敌军从无威胁距离转为完全威胁距离,威胁增加的速度是多少? +distance_threat_mult=当敌军接近时,对基地的威胁值增加多少?值越高威胁越大 +atl_time_start=此值威胁级别开始增加 +atl_time_end=此值威胁级别结束增加 +atl_time_start_val=威胁级别初始值 +atl_time_end_val=威胁级别终值 +atl_enemy_start=威胁级别倍数在敌军数量达到该值时增加 +atl_enemy_end=威胁级别倍数在敌军数量达到该值时不再增加 +atl_enemy_start_mult=威胁级别倍数初始值 +atl_enemy_end_mult=威胁级别倍数终值 +teleport_low_threat=在威胁级别较低时,如果威胁级别大于此值,军队使用回城卷轴 +teleport_high_threat=在威胁级别较高时,如果威胁级别大于此值,军队使用回城卷轴 +teleport_low_threat_distance=在威胁级别较低时,军队在离基地多近时不使用回城卷轴? +teleport_high_threat_distance=在威胁级别较高时,军队在离基地多近时不使用回城卷轴? +teleport_army_min_strength=使用回城卷轴所需的军队规模 +teleport_min_threat=允许使用回城卷轴的最低威胁级别 +shredder_peon_count=一个伐木机的伐木效率相当于几个工人? +minimum_peon_wood=AI拥有多少木材后,不再在增加用于采集木材的工人数量? +maximum_peon_wood=AI拥有多少黄金后,不再在增加用于采集黄金的工人数量? +ver_neutral_heroes_available=该版本是否有中立英雄? +ver_neutral_hero_number=有多少位中立英雄? +ver_only_heroes_buy=只有英雄能买单位或物品吗? +ver_food_limit=该版本的人口上限是多少? +normal_battle_radius=单位的常规仇恨距离是多少? +creep_battle_radius=野怪的仇恨距离是多少? +expansion_taken_radius=敌方建筑必须离矿点多近才能让AMAI识别为已被占领? +ver_hero_base_value=英雄的基础强度是多少(实际强度为等级加上基础强度)? +ver_hero_ultimate_level=英雄在几级可以学大招? +ver_hero_ultimate_value=大招会给英雄增加多少额外强度? +ver_creeps_attack_buildings_dist=野怪攻击建筑物的距离是多少? +ver_mercs_night_buy=在晚上购买雇佣兵不会惊醒野怪? +ver_tower_check_radius=在目标周围多少范围内检测塔? +ver_harass_tower_check_radius=在骚扰时,在多少范围内检测塔? +ver_strat_change_enemy_strength_min=游戏中所有敌方玩家的最大强度都超此值时,才允许更改策略。 +destroy_buildings_on_defeat=AI的建筑在战败时应该被摧毁还是交给中立玩家? +attack_reform_length=每次攻击时重新组建攻击组(获取新单位)的间隔为多少(秒/2)? +front_base_distance=基地前哨位置距离出生点多远? +ver_heroes=此版本英雄是否可用? +fixedcomputername=AI应该使用固定名称而不是档案名称? +green_creep_camp_strength_bonus=绿点野怪额外强度 +orange_creep_camp_strength_bonus=黄点野怪额外强度 +red_creep_camp_strength_bonus=红点野怪额外强度 +debugging=打开调试模式?(DEBUG) +strategy_change_threshold=新策略优先级必须大于当前策略几倍? +disable_surrender=AMAI不该过早放弃游戏? +major_hero_skill_value=英雄选择第一技能的概率 +minor_hero_skill_value=英雄选择第二技能的概率 +rare_hero_skill_value=英雄选择第三技能的概率 +ver_optimal_gold=为档案最爱英雄添加多少概率? +ver_flee_multiple1=每座黄金的采集最佳工人数量,默认为5 +ver_flee_multiple1=最低侵略性下玩家强度的倍数,用于衡量是否允许AMAI逃跑 +ver_flee_multiple2=最高侵略性下玩家强度的倍数,用于衡量是否允许AMAI逃跑 +ver_flee_multiple3=最高侵略度下玩家强度的倍数,用于衡量AMAI是否会逃跑 +ver_low_aggression=侵略性低于多少时,使用最低强度的逃跑倍数 +ver_high_aggression=侵略性高于多少时,使用最高强度的逃跑倍数 -priority for reviving hero1=复活首英雄的优先级 -priority for reviving hero2=复活第二英雄的优先级 -priority for reviving hero3=复活第三英雄的优先级 -priority increase for building needed buildings=建造所需建筑的额外优先级奖励 -priority increase in time=按时间增加优先级 +hero1_revive_prio=复活首英雄的优先级 +hero2_revive_prio=复活第二英雄的优先级 +hero3_revive_prio=复活第三英雄的优先级 +prio_n_inc=建造所需建筑的额外优先级奖励 +prio_t_inc=按时间增加优先级 priority increase in quantity=按数量增加优先级 -builds another farm at the same time when this near food used to food produced=在距离人口上限多少时建造新的人口建筑? -priority for farm building=建造人口建筑优先级 -priority for peon building=建造人口建筑优先级 -priority for expansion building=开矿建筑优先级 -priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)=在紧急情况下(当前矿场/矿场 + 自有资源即将耗尽)进行开矿的优先级 -priority for rebuilding an expansion=重建分基地的优先级 -number of peons to build when 1 mine is owned=拥有1座金矿时的工人数量上限 -number of peons to build when 2 mines are owned=拥有2座金矿时的工人数量上限 -number of peons to build when more mines are owned=拥有更多金矿时的工人数量上限 -minimum number of peons when 1 mine is owned=拥有1座金矿时的工人数量下限 -minimum number of peons when 2 mines are owned=拥有2座金矿时的工人数量下限 -minimum number of peons when more than 1 mine is owned=拥有超过1个矿场时的工人数量下限 -* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)=在当前策略持续爆人口的优先级(防止AI在拥有大量军队时变更策略) -number of strategies with highest RPs that can be chosen when changing strategy=变更策略时可以选择几个最高优先级的策略? -priority added to all strategies having a building the computer already got as a key building=策略优先级是否附加AI已拥有的关键建筑? -priority added to all strategies having a building the computer already started to build as key building=策略优先级是否附加AI正在建造的关键建筑? -priority added to all strategies having both building the computer already got as key buildings=策略优先级是否附加AI当前的关键建筑? -value for 2 of a key buildings=关键建筑第二关键值 -priority added to all strategies having a upgrade the computer already got as key upgrade in first level=策略优先级是否附加AI第一关键科技? -priority added to all strategies having a upgrade the computer already got as key upgrade in second level=策略优先级是否附加AI第二关键科技? -priority added to all strategies having a upgrade the computer already got as key upgrade in third level=策略优先级是否附加AI第三关键科技?? -priority added to strategies havign the current profiles favorite unit as key units.=策略优先级是否附加AI档案的偏好单位? -this race is locked to this strategy number for testing.(-1 is unlocked)=该种族锁定此策略以便测试。(-1表示不锁定) -does the race use healing fountains ?=该种族使用治疗之泉? -does the race need manual loading of wisps in goldmines ?=该种族采金时需要将工人装载到金矿中,类似暗夜? -What is the unit to load ?=哪种工人单位要装载到金矿中? -What unit is it loaded in ?=哪种金矿装载工人? -does the race have a towerrush ?=该种族是否可以TR? -if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER=TR可以购买物品?如头骨制造腐地或哨塔,仅支持大写英文 -the item is build towers is must?=TR必须购买物品吗(如腐地)? -how many items at a time , if can buy=一次TR最多可以买多少物品? -what is the id of the races towers?=TR时的塔是哪种单位? -if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop=如果建筑需要建造在腐地上,TR时不能创建腐地,应该给塔设置替换建筑,哪种建筑可以替换? -what is the id of the tower upgrade1 (core)?=TR时塔的第一种升级是哪种单位? -what is the id of the tower upgrade2 (secondary)?=TR时塔的第二种升级是哪种单位? -tower can move , like ELF tree or StarCraft human build fly?=TR时塔可以移动吗,比如暗夜的树或星际人类建筑的飞行? -what is the order of tower start move? -- like use root to loc move=TR时开始塔移动的命令是哪个(填写命令字符串)?-- 如使用root进行定位移动 -what is the unorder of tower end move?=TR时结束塔移动的命令是哪个(填写命令字符串)?-- 如使用root进行定位移动 -tower is peon become , like ELF? AI will compensate more 2 peon=工人变成塔,像暗夜?设置后AI会补偿2个工人 -the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less=要多少补偿造塔工人,通常补偿等于TR使用的工人数量,但亡灵的建筑是召唤的,可以设置得少些 -what is the building required to build towers ?=造塔需要哪种建筑?如伐木场或磨坊 -how high (in percent) is the probability of doing a tower rush?=TR的触发概率(百分比)是多少? -does the race have a militia expansion ?=该种族开矿时是否可以敲民兵? -how many racial heroes ?=该种族有多少位本族英雄? -a basic melee unit, only necessary when basic_melee is used=基础近战单位,使用基础近战策略时必须填写 -an advanced melee unit to replace the basic one, only necessary when basic_melee is used=高级近战单位,使用基础近战策略时必须填写 -has the race a ghoul-like wood harvester/fighter unit ?=该种族是否有伐木兼战斗的单位,类似食尸鬼? -do those ghouls go with the army on attacks ?=那些伐木兼战斗的单位会在攻击时跟随军队吗? -can multiple racial workers work on the same building ?=该种族的工人多敲建筑吗?类似人族 -has the race no wood harvesters ?=该种族没有专门的木材收集建筑吗?类似暗夜 -should the race leave injured units at home ?=该种族会把受伤单位留在家吗? -does the race expand with a mine building like undead ?=该种族是否使用矿盖开矿?类似亡灵 -does the race use the goblin shredder ?=该种族使用伐木机吗? -does the race have militia ?=该种族是否可以敲民兵民兵? -how far away from the town hall are the militia allowed ?=民兵允许离基地多远? -what is the militia unit type id?=民兵是哪种单位? -what is the militia ability id ?=民兵的变身技能是哪个? -what is the militia ability of the hall ?=大厅号召民兵的技能是哪个? -what is the unitstring/name of the militia ?=民兵的变身技能命令字符串是什么? -what is the string of the unit that can be turned to militia ?=民兵单位的单位字符串是什么? -shall the computer only use militias against larger threats ?=AI是否仅在遭受较大威胁时才使用民兵? -can the race expand with an uprooted building that also helps fighting the creeps ?=该种族是否让建筑站起来协防?类似暗夜 -how high (in percent) is the probability of doing an ancient expansion when possible ?=该种族使用古树开矿的概率(百分比)是多少? -up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?=该种族使用古树开矿的分矿野怪强度最大是多少(已弃用)? -the unit id of the unit that should help in ancient expansion=哪种单位应该在古树开矿时帮忙? -can expand with item building ?=该种族可以使用物品开矿吗?如迷你大厅 -how high (in percent) is the probability of doing a item expansion ?=进行物品开矿的概率(百分比)是多少? -buy expand item need hall level ?=购买开矿物品需要多少级主基地? -what is expand item name(from StandardUnits.txt) ?=开矿物品是哪个? -does the race sell ziggurats that are at no more needed expansions ?=该种族是否会出售无用的分矿通灵塔? -keep ziggurat if this near another building except a ziggurat is=如果这个通灵塔靠近另一个建筑(除了通灵塔)则不卖 -should the race build farms towards the front (as soon as the front is computed) ?=该种族是否应该在基地前方哨点建造人口建筑(确定哨点后)? -limit the number of farms at the front to this number=基地前方哨点的人口建筑最多可以造几个? -the first that many farms will be built at the mine=优先在金矿附近建造几个人口建筑? -the maximum distance between the mine and the expansion building=分矿与分基地之间的最大距离是? -Racial farms have healing properties=该种族的人口建筑拥有治疗光环? -the bonus strength value hero must have to be able to do the tower rush=英雄必须拥有额外强度才TR -the bonus strength value hero must have to be able to do the ancient expansion=英雄必须拥有额外强度才古树开矿 -priority for ghoul building=建筑食尸鬼的优先级 -smallest number of ghouls to build at all times=至少要建造几个食尸鬼? -maximum number of ghouls to build in low lumber situations=在低木材时最多建造几个食尸鬼? - Used to create path units, must be different from race peon=探路单位是哪种?不能与该种族工人相同 -Building id that can house peons/units and then shoot enemies.=该种族哪种建筑可以装载工人或单位以攻击?类似地洞 -// Used to trigger melee defeat conditions on surrender.=// 用于在投降时触发失败条件。 -// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race=// 如果种族有rushcreep标志且此值大于0,将增加古树开矿时优先攻击附近小怪营地的机会(使用standardunits的rushcreep标志) +prio_q_inc=在距离人口上限多少时建造新的人口建筑? +farm_food2=在已用人口接近可用人口时,建造人口建筑的优先级 +farm_prio=建造人口建筑的优先级 +peon_prio=建造工人的优先级 +expa_prio=开矿建筑的优先级 +expa_emergency_prio=在紧急情况下(当前矿场/矿场 + 自有资源即将耗尽)进行开矿的优先级 +expa_rebuild_prio=重建分基地的优先级 +peon_1_mine_number=拥有1座金矿时的工人数量上限 +peon_2_mines_number=拥有2座金矿时的工人数量上限 +peon_mines_number=拥有更多金矿时的工人数量上限 +min_peon_number_single_mine=拥有1座金矿时的工人数量下限 +min_peon_number_double_mine=拥有2座金矿时的工人数量下限 +min_peon_number_multi_mine=拥有超过1个矿场时的工人数量下限 +strat_food_persistence=在当前策略持续爆人口的优先级(防止AI在拥有大量军队时变更策略) +relevant_strat_change_number=变更策略时可以选择几个最高优先级的策略? +kb_add1=已拥有的关键建筑增加多少优先级?(影响所有策略) +kb_add2=正在建造的关键建筑增加多少优先级?(影响所有策略) +kb_add3=已拥有和正在建造的关键建筑增加多少优先级?(影响所有策略) +kb_add4=第二关键建筑增加多少优先级?(影响所有策略) +ku_add1=第一关键科技增加多少优先级?(影响所有策略) +ku_add2=第二关键科技增加多少优先级?(影响所有策略) +ku_add3=第三关键科技增加多少优先级?(影响所有策略) +fav_unit_add=AI档案的偏好单位增加多少优先级?(影响所有策略) +debug_strategy=该种族锁定此策略以便测试。(-1表示不锁定) +race_use_fountain=该种族使用治疗之泉? +race_manual_loading=该种族采金时需要将工人装载到金矿中,类似暗夜? +race_manual_loading_wisp=哪种工人单位要装载到金矿中? +race_manual_loading_mine=哪种金矿装载工人? +race_towerrush_available=该种族是否可以TR? +race_tower_item=TR有辅助物品吗?如头骨制造腐地或哨塔,仅支持大写英文 +race_tower_item_must=TR必须购买辅助物品吗(如腐地)? +race_tower_item_quantity=TR最多可以拥有多少辅助物品? +race_tower_id=TR的塔是哪种单位? +race_tower_id_replace=TR时不能创建腐地,如果建筑需要建造在腐地上,应设置替换单位,哪种单位可以替换? +race_tower_upgrade1=TR的塔的第一种升级是哪种单位?(核心输出) +race_tower_upgrade2=TR的塔的第二种升级是哪种单位?(辅助输出) +race_tower_move=TR的塔可以移动吗,比如暗夜的树或星际人类建筑的飞行? +race_tower_movestartstring=TR时开始塔移动的命令是哪个(填写命令字符串)?需加英文双引号 +race_tower_moveendstring=TR时结束塔移动的命令是哪个(填写命令字符串)?需加英文双引号 +race_tower_bypeon=TR的塔是由工人变成的,像暗夜?设置后AI会额外补偿2个工人 +race_tower_peon=TR要补偿多少造塔工人,由于亡灵是召唤建筑,可以设置得少些 +race_towerrush_requirement=造塔需要哪种建筑?如伐木场或磨坊 +race_towerrush_probability=TR的触发概率(百分比)是多少? +race_militia_expansion_available=该种族开矿时可以敲民兵吗? +race_hero_number=该种族有多少位本族英雄? +race_simple_melee=基础近战单位,使用基础近战策略时必须填写 +race_advanced_melee=高级近战单位,使用基础近战策略时必须填写 +race_has_ghouls=该种族有兼顾伐木和战斗的单位吗,类似食尸鬼? +race_ghouls_attack=兼顾伐木和战斗的单位会加入军队吗? +race_has_power_build=该种族的工人多敲建筑吗?类似人族 +race_no_wood_harvest=该种族没有专门的木材收集建筑吗?类似暗夜 +race_ignore_injured=该种族会把受伤单位留在家吗? +race_uses_mine_expansion=该种族是否使用矿盖开矿?类似亡灵 +race_uses_shredder=该种族使用伐木机吗? +race_militia_available=该种族是否可以敲民兵民兵? +race_militia_max_distance=民兵允许离基地多远? +race_militia_id=民兵是哪种单位? +race_militia_ability=民兵的变身技能是哪个? +race_militia_hall_ability=大厅号召民兵的技能是哪个? +race_militia_unitstring=民兵的变身技能命令字符串是什么?需加英文双引号 +race_militiaworker_unitstring=民兵单位的单位字符串是什么?需加英文双引号 +use_militia_only_on_bigger_threats=仅在遭受较大威胁时才使用民兵? +race_ancient_expansion_available=该种族的建筑可以站起来协防?类似暗夜 +race_ancient_expansion_probability=该种族使用古树开矿的概率(百分比)是多少? +race_ancient_expansion_strength=该种族使用古树开矿的分矿野怪强度最大是多少(已弃用)? +race_ancient_expansion_help_id=哪种单位可替代古树开矿? +race_item_expansion_available=该种族可以使用物品开矿吗?如迷你大厅 +race_item_expansion_probability=使用物品开矿的概率(百分比)是多少? +race_item_sale_level=购买开矿物品需要多少级主基地? +race_item_expansion_item_id=开矿物品是哪个? +race_sell_ziggurats=该种族会出售无用的分矿通灵塔/冰塔/幽魂塔? +race_ziggurat_keep_distance=如果这个通灵塔/冰塔/幽魂塔多少距离内有另一个建筑(除了通灵塔/冰塔/幽魂塔),则不卖 +race_build_farms_front=该种族应在基地前方哨点建造人口建筑(确定哨点后)? +race_farms_front_limit=基地前方哨点的人口建筑最多可以造几个? +race_farms_at_mine=该种族应优先在金矿附近建造几个人口建筑? +race_max_expa_mine_distance=分矿与分基地之间的最大距离是? +race_has_moonwells=该种族的人口建筑拥有治疗光环? +race_towerrush_hero_rush_level=英雄必须拥有额外强度才TR(指定英雄种类,与英雄属性无关) +race_ancient_expansion_hero_rush_level=英雄必须拥有额外强度才古树开矿(指定英雄种类,与英雄属性无关) +ghoul_prio=建造食尸鬼的优先级 +race_min_ghouls=至少要造几个食尸鬼? +race_max_ghouls=在低木材时最多造几个食尸鬼? +groundid=探路单位是哪种?不能与该种族工人相同 +racial_burrow=该种族哪种建筑可以通过装载工人或单位来攻击?类似地洞 +structid=用于在投降时触发失败条件。 +race_ancient_barracks_rush_chance=如果种族有rushcreep标志且此值大于0,将增加古树开矿时优先攻击附近小怪营地的机会(使用standardunits的rushcreep标志) Strategy Function Name=策略名称(使用英文以确保翻译工作) Default Name=默认名称(使用英文以确保翻译工作) @@ -249,7 +251,7 @@ key_upgrade1=第一个核心科技 key_upgrade2=第二个核心科技 key_unit=关键单位 beginning_strat=初始策略 -strat_minimum_time (in seconds/6)=策略最短时间(当前时间/6),按妙计 +strat_minimum_time (in seconds/6)=策略最短时间(当前时间/6),按秒计 strategy_type=策略类型 main_strategy_tier=策略核心主城等级 base rp=基础资源点 diff --git a/Languages/Deutsch/StrategyManager.txt b/Languages/Deutsch/StrategyManager.txt index 4fb861fbe..613672c20 100644 --- a/Languages/Deutsch/StrategyManager.txt +++ b/Languages/Deutsch/StrategyManager.txt @@ -52,193 +52,195 @@ title_strategy_editor= title_racial_builds_editor= title_settings_editor= -increases performance by checking stuff not so often= -how many computer players is needed tor the sleep multiplier to start increasing.= -how many computer players is needed tor the sleep multiplier to stop increasing.= -how much is the sleep multiplied when it's below the slm_start condition= -how much is the sleep multiplied when it's above the slm_end condition= -scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= -should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= -computers only repair buildings if they have more than this many workers= -computers only repair buildings when the town is under attack if they got more than this many workers= -Distance behind the army a zeppelin follows= -when is neutral heroes available in seconds /5= -how close to a shop do a unit have to be for buying?= -time in seconds the hero goes to a shop before it gives up if it haven't reached it= -time in seconds a hero tries to buy items at shop before giving up= -"every this * 5 seconds, the build array is reset"= -normalizing strategy priorities added from strengths with this value= -the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= -strategy when attacking enemy players= -"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= -Distance from ranged units enemy units can be targeted with focus fire= -Distance from melee units enemy units can be targeted with focus fire= -Units flee from battle if the health goes below his % value(0.25 is 25%)= -Units flee from battle if the health goes below this= -how near the units a statue used by undead should be in the fights= -units will stay within this radius from a hero that is using town portal= -computers give extra gold above this value to other computers on the same team in need of gold= -computers give extra lumber above this value to other computers on the same team in need of lumber= -how many towns is a computer allowed to have?= -Add the [AMAI] tag in front of name= -Add the current skill after the name= -how many different harass groups you can use= -"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= -the radius araound a mine computers check for creeps before expanding there= -how far away from ranged enemy units harassing units attack a inferior enemy unit= -how far away from melee enemy units harassing units attack a inferior enemy unit= -how far away from ranged enemy units harassing units turn and flee= -how far away from melee enemy units harassing units turn and flee= -computers use chat taunts= -a enemy army within this distance is counted as a full threat= -a enemy army outside this distance is counted as no threat= -how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= -"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= -accepted threat level increase starts at this time= -and ends at that time= -it starts with this value= -and ends with that value= -accepted threat level multiplier increases at that enemy number= -until that enemy number= -the multiplier starts for accepted threat level starts with this= -and ends with this= -Army uses TP to get home and defend if a threat is greater than this= -Army uses TP to get home and defend if a threat is greater than this= -Army won't use TP home if they are closer to base than this and a low threat level appears= -Army won't use TP home if they are closer to base than this and a high threat level appears= -how big the army need to be for use of TP to threatened town= -minimum threat level TP use is allowed on= -how many peons does a goblin shredder replace in lumber harvesting= -computers don't build any workers for lumber harvesting if they have more lumber than this= -computers build all needed workers for lumber harvesting if they have lumber lower than this= -does the version have neutral heroes ?= -how many neutral heroes ?= -can only heroes buy stuff ?= -what is the versions food limit ?= -units within that radius are considered belonging to the current battle= -"same as with normal_battle_radius, but for battles against creeps"= -how near a mine a enemy building must be to make amai recognize it as taken= -what is the base strength of a hero (the level number is added to get the actual strength) ?= -at what level do the heroes get their ultimates ?= -how much extra strength does the ultimate give to the hero ?= -how far away do creeps attack buildings ?= -can mercs be bought at night without waking up creeps ?= -check for towers in this radius around a target= -check for towers in this radius during harassing= -don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= -Should the buildings of the AI be destroyed on defeat or given to neutral player ?= -reform the attack group (getting new units) every that time on an attack (in seconds / 2)= -the distance of the front locations from the start location= -Does this version have heroes?= -Enable to force computers to have there fixed name instead of a profile name= -Bonus strength added to minor creep camps= -Bonus strength added to mediocre creep camps= -Bonus strength added to major creep camps= -Can turn on for debugging mode to display debug type messages= -New strategy priority must be larger than this multiple to the current strategy= -Set to true to stop amai from giving up early when it detects its going to lose= -Priority to choose the first line of hero skills= -Priority to choose the second line of hero skills= -Priority to choose the third line of hero skills= -priority added to heroes to be picked if they are favorites of the used profile= -The optimal number of peons that should be harvesting gold= -Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= -Multiplier to players strength at highest aggression to measure if amai allowed to flee= -Multipler to players strength at highest aggression to measure if amai will flee= -Aggression below this uses the lowest strength flee multiplier= -Agression above this uses the highest strength flee multiplier= +sleep_multiplier= +slm_start= +slm_end= +slm_start_mult= +slm_end_mult= +hero_radius= +use_linear_upkeep_saving= +repair_threshold= +repair_threshold_threatened= +max_follow_dist= +neutral_hero_time= +buy_distance= +buy_timeout_large= +buy_timeout_small= +rp_strat_normal= +build_array_reset_time= +strategy_tier_bonus= +attacking_strategy= +focus_fire_limit= +focus_fire_ranged_dist= +focus_fire_melee_dist= +flee_health_percentage= +flee_minimum_health= +statue_distance= +teleport_radius= +gold_exchange_level= +wood_exchange_level= +max_towns= +add_tag= +add_skill= +fav_hero_add= +max_harass_groups= +attacking_aggression= +expansion_radius= +harass_radius_attack_ranged= +harass_radius_attack_melee= +harass_radius_flee_ranged= +harass_radius_flee_melee= +chatting= +full_threat_distance= +no_threat_distance= +distance_threat_exponent= +distance_threat_mult= +atl_time_start= +atl_time_end= +atl_time_start_val= +atl_time_end_val= +atl_enemy_start= +atl_enemy_end= +atl_enemy_start_mult= +atl_enemy_end_mult= +teleport_low_threat= +teleport_high_threat= +teleport_low_threat_distance= +teleport_high_threat_distance= +teleport_army_min_strength= +teleport_min_threat= +shredder_peon_count= +minimum_peon_wood= +maximum_peon_wood= +ver_neutral_heroes_available= +ver_neutral_hero_number= +ver_only_heroes_buy= +ver_food_limit= +normal_battle_radius= +creep_battle_radius= +expansion_taken_radius= +ver_hero_base_value= +ver_hero_ultimate_level= +ver_hero_ultimate_value= +ver_creeps_attack_buildings_dist= +ver_mercs_night_buy= +ver_tower_check_radius= +ver_harass_tower_check_radius= +ver_strat_change_enemy_strength_min= +destroy_buildings_on_defeat= +attack_reform_length= +front_base_distance= +ver_heroes= +fixedcomputername= +green_creep_camp_strength_bonus= +orange_creep_camp_strength_bonus= +red_creep_camp_strength_bonus= +debugging= +strategy_change_threshold= +disable_surrender= +major_hero_skill_value= +minor_hero_skill_value= +rare_hero_skill_value= +ver_optimal_gold= +ver_flee_multiple1= +ver_flee_multiple1= +ver_flee_multiple2= +ver_flee_multiple3= +ver_low_aggression= +ver_high_aggression= -priority for reviving hero1= -priority for reviving hero2= -priority for reviving hero3= -priority increase for building needed buildings= -priority increase in time= +hero1_revive_prio= +hero2_revive_prio= +hero3_revive_prio= +prio_n_inc= +prio_t_inc= priority increase in quantity= -builds another farm at the same time when this near food used to food produced= -priority for farm building= -priority for peon building= -priority for expansion building= -priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= -priority for rebuilding an expansion= -number of peons to build when 1 mine is owned= -number of peons to build when 2 mines are owned= -number of peons to build when more mines are owned= -minimum number of peons when 1 mine is owned= -minimum number of peons when 2 mines are owned= -minimum number of peons when more than 1 mine is owned= -* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= -number of strategies with highest RPs that can be chosen when changing strategy= -priority added to all strategies having a building the computer already got as a key building= -priority added to all strategies having a building the computer already started to build as key building= -priority added to all strategies having both building the computer already got as key buildings= -value for 2 of a key buildings= -priority added to all strategies having a upgrade the computer already got as key upgrade in first level= -priority added to all strategies having a upgrade the computer already got as key upgrade in second level= -priority added to all strategies having a upgrade the computer already got as key upgrade in third level= -priority added to strategies havign the current profiles favorite unit as key units.= -this race is locked to this strategy number for testing.(-1 is unlocked)= -does the race use healing fountains ?= -does the race need manual loading of wisps in goldmines ?= -What is the unit to load ?= -What unit is it loaded in ?= -does the race have a towerrush ?= -if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= -the item is build towers is must?= -"how many items at a time , if can buy"= -what is the id of the races towers?= -"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= -what is the id of the tower upgrade1 (core)?= -what is the id of the tower upgrade2 (secondary)?= -"tower can move , like ELF tree or StarCraft human build fly?"= -what is the order of tower start move? -- like use root to loc move= -what is the unorder of tower end move?= -"tower is peon become , like ELF? AI will compensate more 2 peon"= -"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= -what is the building required to build towers ?= -how high (in percent) is the probability of doing a tower rush?= -does the race have a militia expansion ?= -how many racial heroes ?= -"a basic melee unit, only necessary when basic_melee is used"= -"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= -has the race a ghoul-like wood harvester/fighter unit ?= -do those ghouls go with the army on attacks ?= -can multiple racial workers work on the same building ?= -has the race no wood harvesters ?= -should the race leave injured units at home ?= -does the race expand with a mine building like undead ?= -does the race use the goblin shredder ?= -does the race have militia ?= -how far away from the town hall are the militia allowed ?= -what is the militia unit type id?= -what is the militia ability id ?= -what is the militia ability of the hall ?= -what is the unitstring/name of the militia ?= -what is the string of the unit that can be turned to militia ?= -shall the computer only use militias against larger threats ?= -can the race expand with an uprooted building that also helps fighting the creeps ?= -how high (in percent) is the probability of doing an ancient expansion when possible ?= -up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= -the unit id of the unit that should help in ancient expansion= -can expand with item building ?= -how high (in percent) is the probability of doing a item expansion ?= -buy expand item need hall level ?= -what is expand item name(from StandardUnits.txt) ?= -does the race sell ziggurats that are at no more needed expansions ?= -keep ziggurat if this near another building except a ziggurat is= -should the race build farms towards the front (as soon as the front is computed) ?= -limit the number of farms at the front to this number= -the first that many farms will be built at the mine= -the maximum distance between the mine and the expansion building= -Racial farms have healing properties= -the bonus strength value hero must have to be able to do the tower rush= -the bonus strength value hero must have to be able to do the ancient expansion= -priority for ghoul building= -smallest number of ghouls to build at all times= -maximum number of ghouls to build in low lumber situations= -" Used to create path units, must be different from race peon"= -Building id that can house peons/units and then shoot enemies.= -// Used to trigger melee defeat conditions on surrender.= -"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= +prio_q_inc= +farm_food2= +farm_prio= +peon_prio= +expa_prio= +expa_emergency_prio= +expa_rebuild_prio= +peon_1_mine_number= +peon_2_mines_number= +peon_mines_number= +min_peon_number_single_mine= +min_peon_number_double_mine= +min_peon_number_multi_mine= +strat_food_persistence= +relevant_strat_change_number= +kb_add1= +kb_add2= +kb_add3= +kb_add4= +ku_add1= +ku_add2= +ku_add3= +fav_unit_add= +debug_strategy= +race_use_fountain= +race_manual_loading= +race_manual_loading_wisp= +race_manual_loading_mine= +race_towerrush_available= +race_tower_item= +race_tower_item_must= +race_tower_item_quantity= +race_tower_id= +race_tower_id_replace= +race_tower_upgrade1= +race_tower_upgrade2= +race_tower_move= +race_tower_movestartstring= +race_tower_moveendstring= +race_tower_bypeon= +race_tower_peon= +race_towerrush_requirement= +race_towerrush_probability= +race_militia_expansion_available= +race_hero_number= +race_simple_melee= +race_advanced_melee= +race_has_ghouls= +race_ghouls_attack= +race_has_power_build= +race_no_wood_harvest= +race_ignore_injured= +race_uses_mine_expansion= +race_uses_shredder= +race_militia_available= +race_militia_max_distance= +race_militia_id= +race_militia_ability= +race_militia_hall_ability= +race_militia_unitstring= +race_militiaworker_unitstring= +use_militia_only_on_bigger_threats= +race_ancient_expansion_available= +race_ancient_expansion_probability= +race_ancient_expansion_strength= +race_ancient_expansion_help_id= +race_item_expansion_available= +race_item_expansion_probability= +race_item_sale_level= +race_item_expansion_item_id= +race_sell_ziggurats= +race_ziggurat_keep_distance= +race_build_farms_front= +race_farms_front_limit= +race_farms_at_mine= +race_max_expa_mine_distance= +race_has_moonwells= +race_towerrush_hero_rush_level= +race_ancient_expansion_hero_rush_level= +ghoul_prio= +race_min_ghouls= +race_max_ghouls= +groundid= +racial_burrow= +structid= +race_ancient_barracks_rush_chance= Strategy Function Name= Default Name= diff --git a/Languages/English/StrategyManager.txt b/Languages/English/StrategyManager.txt index 44d5ad648..984393485 100644 --- a/Languages/English/StrategyManager.txt +++ b/Languages/English/StrategyManager.txt @@ -52,193 +52,195 @@ title_strategy_editor=AMAI Strategy Editor title_racial_builds_editor=AMAI Racial Builds Editor title_settings_editor=AMAI Settings Editor -increases performance by checking stuff not so often= -how many computer players is needed tor the sleep multiplier to start increasing.= -how many computer players is needed tor the sleep multiplier to stop increasing.= -how much is the sleep multiplied when it's below the slm_start condition= -how much is the sleep multiplied when it's above the slm_end condition= -scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= -should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= -computers only repair buildings if they have more than this many workers= -computers only repair buildings when the town is under attack if they got more than this many workers= -Distance behind the army a zeppelin follows= -when is neutral heroes available in seconds /5= -how close to a shop do a unit have to be for buying?= -time in seconds the hero goes to a shop before it gives up if it haven't reached it= -time in seconds a hero tries to buy items at shop before giving up= -"every this * 5 seconds, the build array is reset"= -normalizing strategy priorities added from strengths with this value= -the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= -strategy when attacking enemy players= -"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= -Distance from ranged units enemy units can be targeted with focus fire= -Distance from melee units enemy units can be targeted with focus fire= -Units flee from battle if the health goes below his % value(0.25 is 25%)= -Units flee from battle if the health goes below this= -how near the units a statue used by undead should be in the fights= -units will stay within this radius from a hero that is using town portal= -computers give extra gold above this value to other computers on the same team in need of gold= -computers give extra lumber above this value to other computers on the same team in need of lumber= -how many towns is a computer allowed to have?= -Add the [AMAI] tag in front of name= -Add the current skill after the name= -how many different harass groups you can use= -"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= -the radius araound a mine computers check for creeps before expanding there= -how far away from ranged enemy units harassing units attack a inferior enemy unit= -how far away from melee enemy units harassing units attack a inferior enemy unit= -how far away from ranged enemy units harassing units turn and flee= -how far away from melee enemy units harassing units turn and flee= -computers use chat taunts= -a enemy army within this distance is counted as a full threat= -a enemy army outside this distance is counted as no threat= -how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= -"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= -accepted threat level increase starts at this time= -and ends at that time= -it starts with this value= -and ends with that value= -accepted threat level multiplier increases at that enemy number= -until that enemy number= -the multiplier starts for accepted threat level starts with this= -and ends with this= -Army uses TP to get home and defend if a threat is greater than this= -Army uses TP to get home and defend if a threat is greater than this= -Army won't use TP home if they are closer to base than this and a low threat level appears= -Army won't use TP home if they are closer to base than this and a high threat level appears= -how big the army need to be for use of TP to threatened town= -minimum threat level TP use is allowed on= -how many peons does a goblin shredder replace in lumber harvesting= -computers don't build any workers for lumber harvesting if they have more lumber than this= -computers build all needed workers for lumber harvesting if they have lumber lower than this= -does the version have neutral heroes ?= -how many neutral heroes ?= -can only heroes buy stuff ?= -what is the versions food limit ?= -units within that radius are considered belonging to the current battle= -"same as with normal_battle_radius, but for battles against creeps"= -how near a mine a enemy building must be to make amai recognize it as taken= -what is the base strength of a hero (the level number is added to get the actual strength) ?= -at what level do the heroes get their ultimates ?= -how much extra strength does the ultimate give to the hero ?= -how far away do creeps attack buildings ?= -can mercs be bought at night without waking up creeps ?= -check for towers in this radius around a target= -check for towers in this radius during harassing= -don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= -Should the buildings of the AI be destroyed on defeat or given to neutral player ?= -reform the attack group (getting new units) every that time on an attack (in seconds / 2)= -the distance of the front locations from the start location= -Does this version have heroes?= -Enable to force computers to have there fixed name instead of a profile name= -Bonus strength added to minor creep camps= -Bonus strength added to mediocre creep camps= -Bonus strength added to major creep camps= -Can turn on for debugging mode to display debug type messages= -New strategy priority must be larger than this multiple to the current strategy= -Set to true to stop amai from giving up early when it detects its going to lose= -Priority to choose the first line of hero skills= -Priority to choose the second line of hero skills= -Priority to choose the third line of hero skills= -priority added to heroes to be picked if they are favorites of the used profile= -The optimal number of peons that should be harvesting gold= -Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= -Multiplier to players strength at highest aggression to measure if amai allowed to flee= -Multipler to players strength at highest aggression to measure if amai will flee= -Aggression below this uses the lowest strength flee multiplier= -Agression above this uses the highest strength flee multiplier= +sleep_multiplier= +slm_start= +slm_end= +slm_start_mult= +slm_end_mult= +hero_radius= +use_linear_upkeep_saving= +repair_threshold= +repair_threshold_threatened= +max_follow_dist= +neutral_hero_time= +buy_distance= +buy_timeout_large= +buy_timeout_small= +rp_strat_normal= +build_array_reset_time= +strategy_tier_bonus= +attacking_strategy= +focus_fire_limit= +focus_fire_ranged_dist= +focus_fire_melee_dist= +flee_health_percentage= +flee_minimum_health= +statue_distance= +teleport_radius= +gold_exchange_level= +wood_exchange_level= +max_towns= +add_tag= +add_skill= +fav_hero_add= +max_harass_groups= +attacking_aggression= +expansion_radius= +harass_radius_attack_ranged= +harass_radius_attack_melee= +harass_radius_flee_ranged= +harass_radius_flee_melee= +chatting= +full_threat_distance= +no_threat_distance= +distance_threat_exponent= +distance_threat_mult= +atl_time_start= +atl_time_end= +atl_time_start_val= +atl_time_end_val= +atl_enemy_start= +atl_enemy_end= +atl_enemy_start_mult= +atl_enemy_end_mult= +teleport_low_threat= +teleport_high_threat= +teleport_low_threat_distance= +teleport_high_threat_distance= +teleport_army_min_strength= +teleport_min_threat= +shredder_peon_count= +minimum_peon_wood= +maximum_peon_wood= +ver_neutral_heroes_available= +ver_neutral_hero_number= +ver_only_heroes_buy= +ver_food_limit= +normal_battle_radius= +creep_battle_radius= +expansion_taken_radius= +ver_hero_base_value= +ver_hero_ultimate_level= +ver_hero_ultimate_value= +ver_creeps_attack_buildings_dist= +ver_mercs_night_buy= +ver_tower_check_radius= +ver_harass_tower_check_radius= +ver_strat_change_enemy_strength_min= +destroy_buildings_on_defeat= +attack_reform_length= +front_base_distance= +ver_heroes= +fixedcomputername= +green_creep_camp_strength_bonus= +orange_creep_camp_strength_bonus= +red_creep_camp_strength_bonus= +debugging= +strategy_change_threshold= +disable_surrender= +major_hero_skill_value= +minor_hero_skill_value= +rare_hero_skill_value= +ver_optimal_gold= +ver_flee_multiple1= +ver_flee_multiple1= +ver_flee_multiple2= +ver_flee_multiple3= +ver_low_aggression= +ver_high_aggression= -priority for reviving hero1= -priority for reviving hero2= -priority for reviving hero3= -priority increase for building needed buildings= -priority increase in time= +hero1_revive_prio= +hero2_revive_prio= +hero3_revive_prio= +prio_n_inc= +prio_t_inc= priority increase in quantity= -builds another farm at the same time when this near food used to food produced= -priority for farm building= -priority for peon building= -priority for expansion building= -priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= -priority for rebuilding an expansion= -number of peons to build when 1 mine is owned= -number of peons to build when 2 mines are owned= -number of peons to build when more mines are owned= -minimum number of peons when 1 mine is owned= -minimum number of peons when 2 mines are owned= -minimum number of peons when more than 1 mine is owned= -* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= -number of strategies with highest RPs that can be chosen when changing strategy= -priority added to all strategies having a building the computer already got as a key building= -priority added to all strategies having a building the computer already started to build as key building= -priority added to all strategies having both building the computer already got as key buildings= -value for 2 of a key buildings= -priority added to all strategies having a upgrade the computer already got as key upgrade in first level= -priority added to all strategies having a upgrade the computer already got as key upgrade in second level= -priority added to all strategies having a upgrade the computer already got as key upgrade in third level= -priority added to strategies havign the current profiles favorite unit as key units.= -this race is locked to this strategy number for testing.(-1 is unlocked)= -does the race use healing fountains ?= -does the race need manual loading of wisps in goldmines ?= -What is the unit to load ?= -What unit is it loaded in ?= -does the race have a towerrush ?= -if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= -the item is build towers is must?= -"how many items at a time , if can buy"= -what is the id of the races towers?= -"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= -what is the id of the tower upgrade1 (core)?= -what is the id of the tower upgrade2 (secondary)?= -"tower can move , like ELF tree or StarCraft human build fly?"= -what is the order of tower start move? -- like use root to loc move= -what is the unorder of tower end move?= -"tower is peon become , like ELF? AI will compensate more 2 peon"= -"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= -what is the building required to build towers ?= -how high (in percent) is the probability of doing a tower rush?= -does the race have a militia expansion ?= -how many racial heroes ?= -"a basic melee unit, only necessary when basic_melee is used"= -"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= -has the race a ghoul-like wood harvester/fighter unit ?= -do those ghouls go with the army on attacks ?= -can multiple racial workers work on the same building ?= -has the race no wood harvesters ?= -should the race leave injured units at home ?= -does the race expand with a mine building like undead ?= -does the race use the goblin shredder ?= -does the race have militia ?= -how far away from the town hall are the militia allowed ?= -what is the militia unit type id?= -what is the militia ability id ?= -what is the militia ability of the hall ?= -what is the unitstring/name of the militia ?= -what is the string of the unit that can be turned to militia ?= -shall the computer only use militias against larger threats ?= -can the race expand with an uprooted building that also helps fighting the creeps ?= -how high (in percent) is the probability of doing an ancient expansion when possible ?= -up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= -the unit id of the unit that should help in ancient expansion= -can expand with item building ?= -how high (in percent) is the probability of doing a item expansion ?= -buy expand item need hall level ?= -what is expand item name(from StandardUnits.txt) ?= -does the race sell ziggurats that are at no more needed expansions ?= -keep ziggurat if this near another building except a ziggurat is= -should the race build farms towards the front (as soon as the front is computed) ?= -limit the number of farms at the front to this number= -the first that many farms will be built at the mine= -the maximum distance between the mine and the expansion building= -Racial farms have healing properties= -the bonus strength value hero must have to be able to do the tower rush= -the bonus strength value hero must have to be able to do the ancient expansion= -priority for ghoul building= -smallest number of ghouls to build at all times= -maximum number of ghouls to build in low lumber situations= -" Used to create path units, must be different from race peon"= -Building id that can house peons/units and then shoot enemies.= -// Used to trigger melee defeat conditions on surrender.= -"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= +prio_q_inc= +farm_food2= +farm_prio= +peon_prio= +expa_prio= +expa_emergency_prio= +expa_rebuild_prio= +peon_1_mine_number= +peon_2_mines_number= +peon_mines_number= +min_peon_number_single_mine= +min_peon_number_double_mine= +min_peon_number_multi_mine= +strat_food_persistence= +relevant_strat_change_number= +kb_add1= +kb_add2= +kb_add3= +kb_add4= +ku_add1= +ku_add2= +ku_add3= +fav_unit_add= +debug_strategy= +race_use_fountain= +race_manual_loading= +race_manual_loading_wisp= +race_manual_loading_mine= +race_towerrush_available= +race_tower_item= +race_tower_item_must= +race_tower_item_quantity= +race_tower_id= +race_tower_id_replace= +race_tower_upgrade1= +race_tower_upgrade2= +race_tower_move= +race_tower_movestartstring= +race_tower_moveendstring= +race_tower_bypeon= +race_tower_peon= +race_towerrush_requirement= +race_towerrush_probability= +race_militia_expansion_available= +race_hero_number= +race_simple_melee= +race_advanced_melee= +race_has_ghouls= +race_ghouls_attack= +race_has_power_build= +race_no_wood_harvest= +race_ignore_injured= +race_uses_mine_expansion= +race_uses_shredder= +race_militia_available= +race_militia_max_distance= +race_militia_id= +race_militia_ability= +race_militia_hall_ability= +race_militia_unitstring= +race_militiaworker_unitstring= +use_militia_only_on_bigger_threats= +race_ancient_expansion_available= +race_ancient_expansion_probability= +race_ancient_expansion_strength= +race_ancient_expansion_help_id= +race_item_expansion_available= +race_item_expansion_probability= +race_item_sale_level= +race_item_expansion_item_id= +race_sell_ziggurats= +race_ziggurat_keep_distance= +race_build_farms_front= +race_farms_front_limit= +race_farms_at_mine= +race_max_expa_mine_distance= +race_has_moonwells= +race_towerrush_hero_rush_level= +race_ancient_expansion_hero_rush_level= +ghoul_prio= +race_min_ghouls= +race_max_ghouls= +groundid= +racial_burrow= +structid= +race_ancient_barracks_rush_chance= Strategy Function Name= Default Name= diff --git a/Languages/French/StrategyManager.txt b/Languages/French/StrategyManager.txt index 4fb861fbe..613672c20 100644 --- a/Languages/French/StrategyManager.txt +++ b/Languages/French/StrategyManager.txt @@ -52,193 +52,195 @@ title_strategy_editor= title_racial_builds_editor= title_settings_editor= -increases performance by checking stuff not so often= -how many computer players is needed tor the sleep multiplier to start increasing.= -how many computer players is needed tor the sleep multiplier to stop increasing.= -how much is the sleep multiplied when it's below the slm_start condition= -how much is the sleep multiplied when it's above the slm_end condition= -scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= -should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= -computers only repair buildings if they have more than this many workers= -computers only repair buildings when the town is under attack if they got more than this many workers= -Distance behind the army a zeppelin follows= -when is neutral heroes available in seconds /5= -how close to a shop do a unit have to be for buying?= -time in seconds the hero goes to a shop before it gives up if it haven't reached it= -time in seconds a hero tries to buy items at shop before giving up= -"every this * 5 seconds, the build array is reset"= -normalizing strategy priorities added from strengths with this value= -the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= -strategy when attacking enemy players= -"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= -Distance from ranged units enemy units can be targeted with focus fire= -Distance from melee units enemy units can be targeted with focus fire= -Units flee from battle if the health goes below his % value(0.25 is 25%)= -Units flee from battle if the health goes below this= -how near the units a statue used by undead should be in the fights= -units will stay within this radius from a hero that is using town portal= -computers give extra gold above this value to other computers on the same team in need of gold= -computers give extra lumber above this value to other computers on the same team in need of lumber= -how many towns is a computer allowed to have?= -Add the [AMAI] tag in front of name= -Add the current skill after the name= -how many different harass groups you can use= -"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= -the radius araound a mine computers check for creeps before expanding there= -how far away from ranged enemy units harassing units attack a inferior enemy unit= -how far away from melee enemy units harassing units attack a inferior enemy unit= -how far away from ranged enemy units harassing units turn and flee= -how far away from melee enemy units harassing units turn and flee= -computers use chat taunts= -a enemy army within this distance is counted as a full threat= -a enemy army outside this distance is counted as no threat= -how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= -"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= -accepted threat level increase starts at this time= -and ends at that time= -it starts with this value= -and ends with that value= -accepted threat level multiplier increases at that enemy number= -until that enemy number= -the multiplier starts for accepted threat level starts with this= -and ends with this= -Army uses TP to get home and defend if a threat is greater than this= -Army uses TP to get home and defend if a threat is greater than this= -Army won't use TP home if they are closer to base than this and a low threat level appears= -Army won't use TP home if they are closer to base than this and a high threat level appears= -how big the army need to be for use of TP to threatened town= -minimum threat level TP use is allowed on= -how many peons does a goblin shredder replace in lumber harvesting= -computers don't build any workers for lumber harvesting if they have more lumber than this= -computers build all needed workers for lumber harvesting if they have lumber lower than this= -does the version have neutral heroes ?= -how many neutral heroes ?= -can only heroes buy stuff ?= -what is the versions food limit ?= -units within that radius are considered belonging to the current battle= -"same as with normal_battle_radius, but for battles against creeps"= -how near a mine a enemy building must be to make amai recognize it as taken= -what is the base strength of a hero (the level number is added to get the actual strength) ?= -at what level do the heroes get their ultimates ?= -how much extra strength does the ultimate give to the hero ?= -how far away do creeps attack buildings ?= -can mercs be bought at night without waking up creeps ?= -check for towers in this radius around a target= -check for towers in this radius during harassing= -don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= -Should the buildings of the AI be destroyed on defeat or given to neutral player ?= -reform the attack group (getting new units) every that time on an attack (in seconds / 2)= -the distance of the front locations from the start location= -Does this version have heroes?= -Enable to force computers to have there fixed name instead of a profile name= -Bonus strength added to minor creep camps= -Bonus strength added to mediocre creep camps= -Bonus strength added to major creep camps= -Can turn on for debugging mode to display debug type messages= -New strategy priority must be larger than this multiple to the current strategy= -Set to true to stop amai from giving up early when it detects its going to lose= -Priority to choose the first line of hero skills= -Priority to choose the second line of hero skills= -Priority to choose the third line of hero skills= -priority added to heroes to be picked if they are favorites of the used profile= -The optimal number of peons that should be harvesting gold= -Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= -Multiplier to players strength at highest aggression to measure if amai allowed to flee= -Multipler to players strength at highest aggression to measure if amai will flee= -Aggression below this uses the lowest strength flee multiplier= -Agression above this uses the highest strength flee multiplier= +sleep_multiplier= +slm_start= +slm_end= +slm_start_mult= +slm_end_mult= +hero_radius= +use_linear_upkeep_saving= +repair_threshold= +repair_threshold_threatened= +max_follow_dist= +neutral_hero_time= +buy_distance= +buy_timeout_large= +buy_timeout_small= +rp_strat_normal= +build_array_reset_time= +strategy_tier_bonus= +attacking_strategy= +focus_fire_limit= +focus_fire_ranged_dist= +focus_fire_melee_dist= +flee_health_percentage= +flee_minimum_health= +statue_distance= +teleport_radius= +gold_exchange_level= +wood_exchange_level= +max_towns= +add_tag= +add_skill= +fav_hero_add= +max_harass_groups= +attacking_aggression= +expansion_radius= +harass_radius_attack_ranged= +harass_radius_attack_melee= +harass_radius_flee_ranged= +harass_radius_flee_melee= +chatting= +full_threat_distance= +no_threat_distance= +distance_threat_exponent= +distance_threat_mult= +atl_time_start= +atl_time_end= +atl_time_start_val= +atl_time_end_val= +atl_enemy_start= +atl_enemy_end= +atl_enemy_start_mult= +atl_enemy_end_mult= +teleport_low_threat= +teleport_high_threat= +teleport_low_threat_distance= +teleport_high_threat_distance= +teleport_army_min_strength= +teleport_min_threat= +shredder_peon_count= +minimum_peon_wood= +maximum_peon_wood= +ver_neutral_heroes_available= +ver_neutral_hero_number= +ver_only_heroes_buy= +ver_food_limit= +normal_battle_radius= +creep_battle_radius= +expansion_taken_radius= +ver_hero_base_value= +ver_hero_ultimate_level= +ver_hero_ultimate_value= +ver_creeps_attack_buildings_dist= +ver_mercs_night_buy= +ver_tower_check_radius= +ver_harass_tower_check_radius= +ver_strat_change_enemy_strength_min= +destroy_buildings_on_defeat= +attack_reform_length= +front_base_distance= +ver_heroes= +fixedcomputername= +green_creep_camp_strength_bonus= +orange_creep_camp_strength_bonus= +red_creep_camp_strength_bonus= +debugging= +strategy_change_threshold= +disable_surrender= +major_hero_skill_value= +minor_hero_skill_value= +rare_hero_skill_value= +ver_optimal_gold= +ver_flee_multiple1= +ver_flee_multiple1= +ver_flee_multiple2= +ver_flee_multiple3= +ver_low_aggression= +ver_high_aggression= -priority for reviving hero1= -priority for reviving hero2= -priority for reviving hero3= -priority increase for building needed buildings= -priority increase in time= +hero1_revive_prio= +hero2_revive_prio= +hero3_revive_prio= +prio_n_inc= +prio_t_inc= priority increase in quantity= -builds another farm at the same time when this near food used to food produced= -priority for farm building= -priority for peon building= -priority for expansion building= -priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= -priority for rebuilding an expansion= -number of peons to build when 1 mine is owned= -number of peons to build when 2 mines are owned= -number of peons to build when more mines are owned= -minimum number of peons when 1 mine is owned= -minimum number of peons when 2 mines are owned= -minimum number of peons when more than 1 mine is owned= -* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= -number of strategies with highest RPs that can be chosen when changing strategy= -priority added to all strategies having a building the computer already got as a key building= -priority added to all strategies having a building the computer already started to build as key building= -priority added to all strategies having both building the computer already got as key buildings= -value for 2 of a key buildings= -priority added to all strategies having a upgrade the computer already got as key upgrade in first level= -priority added to all strategies having a upgrade the computer already got as key upgrade in second level= -priority added to all strategies having a upgrade the computer already got as key upgrade in third level= -priority added to strategies havign the current profiles favorite unit as key units.= -this race is locked to this strategy number for testing.(-1 is unlocked)= -does the race use healing fountains ?= -does the race need manual loading of wisps in goldmines ?= -What is the unit to load ?= -What unit is it loaded in ?= -does the race have a towerrush ?= -if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= -the item is build towers is must?= -"how many items at a time , if can buy"= -what is the id of the races towers?= -"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= -what is the id of the tower upgrade1 (core)?= -what is the id of the tower upgrade2 (secondary)?= -"tower can move , like ELF tree or StarCraft human build fly?"= -what is the order of tower start move? -- like use root to loc move= -what is the unorder of tower end move?= -"tower is peon become , like ELF? AI will compensate more 2 peon"= -"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= -what is the building required to build towers ?= -how high (in percent) is the probability of doing a tower rush?= -does the race have a militia expansion ?= -how many racial heroes ?= -"a basic melee unit, only necessary when basic_melee is used"= -"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= -has the race a ghoul-like wood harvester/fighter unit ?= -do those ghouls go with the army on attacks ?= -can multiple racial workers work on the same building ?= -has the race no wood harvesters ?= -should the race leave injured units at home ?= -does the race expand with a mine building like undead ?= -does the race use the goblin shredder ?= -does the race have militia ?= -how far away from the town hall are the militia allowed ?= -what is the militia unit type id?= -what is the militia ability id ?= -what is the militia ability of the hall ?= -what is the unitstring/name of the militia ?= -what is the string of the unit that can be turned to militia ?= -shall the computer only use militias against larger threats ?= -can the race expand with an uprooted building that also helps fighting the creeps ?= -how high (in percent) is the probability of doing an ancient expansion when possible ?= -up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= -the unit id of the unit that should help in ancient expansion= -can expand with item building ?= -how high (in percent) is the probability of doing a item expansion ?= -buy expand item need hall level ?= -what is expand item name(from StandardUnits.txt) ?= -does the race sell ziggurats that are at no more needed expansions ?= -keep ziggurat if this near another building except a ziggurat is= -should the race build farms towards the front (as soon as the front is computed) ?= -limit the number of farms at the front to this number= -the first that many farms will be built at the mine= -the maximum distance between the mine and the expansion building= -Racial farms have healing properties= -the bonus strength value hero must have to be able to do the tower rush= -the bonus strength value hero must have to be able to do the ancient expansion= -priority for ghoul building= -smallest number of ghouls to build at all times= -maximum number of ghouls to build in low lumber situations= -" Used to create path units, must be different from race peon"= -Building id that can house peons/units and then shoot enemies.= -// Used to trigger melee defeat conditions on surrender.= -"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= +prio_q_inc= +farm_food2= +farm_prio= +peon_prio= +expa_prio= +expa_emergency_prio= +expa_rebuild_prio= +peon_1_mine_number= +peon_2_mines_number= +peon_mines_number= +min_peon_number_single_mine= +min_peon_number_double_mine= +min_peon_number_multi_mine= +strat_food_persistence= +relevant_strat_change_number= +kb_add1= +kb_add2= +kb_add3= +kb_add4= +ku_add1= +ku_add2= +ku_add3= +fav_unit_add= +debug_strategy= +race_use_fountain= +race_manual_loading= +race_manual_loading_wisp= +race_manual_loading_mine= +race_towerrush_available= +race_tower_item= +race_tower_item_must= +race_tower_item_quantity= +race_tower_id= +race_tower_id_replace= +race_tower_upgrade1= +race_tower_upgrade2= +race_tower_move= +race_tower_movestartstring= +race_tower_moveendstring= +race_tower_bypeon= +race_tower_peon= +race_towerrush_requirement= +race_towerrush_probability= +race_militia_expansion_available= +race_hero_number= +race_simple_melee= +race_advanced_melee= +race_has_ghouls= +race_ghouls_attack= +race_has_power_build= +race_no_wood_harvest= +race_ignore_injured= +race_uses_mine_expansion= +race_uses_shredder= +race_militia_available= +race_militia_max_distance= +race_militia_id= +race_militia_ability= +race_militia_hall_ability= +race_militia_unitstring= +race_militiaworker_unitstring= +use_militia_only_on_bigger_threats= +race_ancient_expansion_available= +race_ancient_expansion_probability= +race_ancient_expansion_strength= +race_ancient_expansion_help_id= +race_item_expansion_available= +race_item_expansion_probability= +race_item_sale_level= +race_item_expansion_item_id= +race_sell_ziggurats= +race_ziggurat_keep_distance= +race_build_farms_front= +race_farms_front_limit= +race_farms_at_mine= +race_max_expa_mine_distance= +race_has_moonwells= +race_towerrush_hero_rush_level= +race_ancient_expansion_hero_rush_level= +ghoul_prio= +race_min_ghouls= +race_max_ghouls= +groundid= +racial_burrow= +structid= +race_ancient_barracks_rush_chance= Strategy Function Name= Default Name= diff --git a/Languages/Norwegian/StrategyManager.txt b/Languages/Norwegian/StrategyManager.txt index 4fb861fbe..613672c20 100644 --- a/Languages/Norwegian/StrategyManager.txt +++ b/Languages/Norwegian/StrategyManager.txt @@ -52,193 +52,195 @@ title_strategy_editor= title_racial_builds_editor= title_settings_editor= -increases performance by checking stuff not so often= -how many computer players is needed tor the sleep multiplier to start increasing.= -how many computer players is needed tor the sleep multiplier to stop increasing.= -how much is the sleep multiplied when it's below the slm_start condition= -how much is the sleep multiplied when it's above the slm_end condition= -scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= -should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= -computers only repair buildings if they have more than this many workers= -computers only repair buildings when the town is under attack if they got more than this many workers= -Distance behind the army a zeppelin follows= -when is neutral heroes available in seconds /5= -how close to a shop do a unit have to be for buying?= -time in seconds the hero goes to a shop before it gives up if it haven't reached it= -time in seconds a hero tries to buy items at shop before giving up= -"every this * 5 seconds, the build array is reset"= -normalizing strategy priorities added from strengths with this value= -the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= -strategy when attacking enemy players= -"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= -Distance from ranged units enemy units can be targeted with focus fire= -Distance from melee units enemy units can be targeted with focus fire= -Units flee from battle if the health goes below his % value(0.25 is 25%)= -Units flee from battle if the health goes below this= -how near the units a statue used by undead should be in the fights= -units will stay within this radius from a hero that is using town portal= -computers give extra gold above this value to other computers on the same team in need of gold= -computers give extra lumber above this value to other computers on the same team in need of lumber= -how many towns is a computer allowed to have?= -Add the [AMAI] tag in front of name= -Add the current skill after the name= -how many different harass groups you can use= -"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= -the radius araound a mine computers check for creeps before expanding there= -how far away from ranged enemy units harassing units attack a inferior enemy unit= -how far away from melee enemy units harassing units attack a inferior enemy unit= -how far away from ranged enemy units harassing units turn and flee= -how far away from melee enemy units harassing units turn and flee= -computers use chat taunts= -a enemy army within this distance is counted as a full threat= -a enemy army outside this distance is counted as no threat= -how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= -"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= -accepted threat level increase starts at this time= -and ends at that time= -it starts with this value= -and ends with that value= -accepted threat level multiplier increases at that enemy number= -until that enemy number= -the multiplier starts for accepted threat level starts with this= -and ends with this= -Army uses TP to get home and defend if a threat is greater than this= -Army uses TP to get home and defend if a threat is greater than this= -Army won't use TP home if they are closer to base than this and a low threat level appears= -Army won't use TP home if they are closer to base than this and a high threat level appears= -how big the army need to be for use of TP to threatened town= -minimum threat level TP use is allowed on= -how many peons does a goblin shredder replace in lumber harvesting= -computers don't build any workers for lumber harvesting if they have more lumber than this= -computers build all needed workers for lumber harvesting if they have lumber lower than this= -does the version have neutral heroes ?= -how many neutral heroes ?= -can only heroes buy stuff ?= -what is the versions food limit ?= -units within that radius are considered belonging to the current battle= -"same as with normal_battle_radius, but for battles against creeps"= -how near a mine a enemy building must be to make amai recognize it as taken= -what is the base strength of a hero (the level number is added to get the actual strength) ?= -at what level do the heroes get their ultimates ?= -how much extra strength does the ultimate give to the hero ?= -how far away do creeps attack buildings ?= -can mercs be bought at night without waking up creeps ?= -check for towers in this radius around a target= -check for towers in this radius during harassing= -don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= -Should the buildings of the AI be destroyed on defeat or given to neutral player ?= -reform the attack group (getting new units) every that time on an attack (in seconds / 2)= -the distance of the front locations from the start location= -Does this version have heroes?= -Enable to force computers to have there fixed name instead of a profile name= -Bonus strength added to minor creep camps= -Bonus strength added to mediocre creep camps= -Bonus strength added to major creep camps= -Can turn on for debugging mode to display debug type messages= -New strategy priority must be larger than this multiple to the current strategy= -Set to true to stop amai from giving up early when it detects its going to lose= -Priority to choose the first line of hero skills= -Priority to choose the second line of hero skills= -Priority to choose the third line of hero skills= -priority added to heroes to be picked if they are favorites of the used profile= -The optimal number of peons that should be harvesting gold= -Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= -Multiplier to players strength at highest aggression to measure if amai allowed to flee= -Multipler to players strength at highest aggression to measure if amai will flee= -Aggression below this uses the lowest strength flee multiplier= -Agression above this uses the highest strength flee multiplier= +sleep_multiplier= +slm_start= +slm_end= +slm_start_mult= +slm_end_mult= +hero_radius= +use_linear_upkeep_saving= +repair_threshold= +repair_threshold_threatened= +max_follow_dist= +neutral_hero_time= +buy_distance= +buy_timeout_large= +buy_timeout_small= +rp_strat_normal= +build_array_reset_time= +strategy_tier_bonus= +attacking_strategy= +focus_fire_limit= +focus_fire_ranged_dist= +focus_fire_melee_dist= +flee_health_percentage= +flee_minimum_health= +statue_distance= +teleport_radius= +gold_exchange_level= +wood_exchange_level= +max_towns= +add_tag= +add_skill= +fav_hero_add= +max_harass_groups= +attacking_aggression= +expansion_radius= +harass_radius_attack_ranged= +harass_radius_attack_melee= +harass_radius_flee_ranged= +harass_radius_flee_melee= +chatting= +full_threat_distance= +no_threat_distance= +distance_threat_exponent= +distance_threat_mult= +atl_time_start= +atl_time_end= +atl_time_start_val= +atl_time_end_val= +atl_enemy_start= +atl_enemy_end= +atl_enemy_start_mult= +atl_enemy_end_mult= +teleport_low_threat= +teleport_high_threat= +teleport_low_threat_distance= +teleport_high_threat_distance= +teleport_army_min_strength= +teleport_min_threat= +shredder_peon_count= +minimum_peon_wood= +maximum_peon_wood= +ver_neutral_heroes_available= +ver_neutral_hero_number= +ver_only_heroes_buy= +ver_food_limit= +normal_battle_radius= +creep_battle_radius= +expansion_taken_radius= +ver_hero_base_value= +ver_hero_ultimate_level= +ver_hero_ultimate_value= +ver_creeps_attack_buildings_dist= +ver_mercs_night_buy= +ver_tower_check_radius= +ver_harass_tower_check_radius= +ver_strat_change_enemy_strength_min= +destroy_buildings_on_defeat= +attack_reform_length= +front_base_distance= +ver_heroes= +fixedcomputername= +green_creep_camp_strength_bonus= +orange_creep_camp_strength_bonus= +red_creep_camp_strength_bonus= +debugging= +strategy_change_threshold= +disable_surrender= +major_hero_skill_value= +minor_hero_skill_value= +rare_hero_skill_value= +ver_optimal_gold= +ver_flee_multiple1= +ver_flee_multiple1= +ver_flee_multiple2= +ver_flee_multiple3= +ver_low_aggression= +ver_high_aggression= -priority for reviving hero1= -priority for reviving hero2= -priority for reviving hero3= -priority increase for building needed buildings= -priority increase in time= +hero1_revive_prio= +hero2_revive_prio= +hero3_revive_prio= +prio_n_inc= +prio_t_inc= priority increase in quantity= -builds another farm at the same time when this near food used to food produced= -priority for farm building= -priority for peon building= -priority for expansion building= -priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= -priority for rebuilding an expansion= -number of peons to build when 1 mine is owned= -number of peons to build when 2 mines are owned= -number of peons to build when more mines are owned= -minimum number of peons when 1 mine is owned= -minimum number of peons when 2 mines are owned= -minimum number of peons when more than 1 mine is owned= -* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= -number of strategies with highest RPs that can be chosen when changing strategy= -priority added to all strategies having a building the computer already got as a key building= -priority added to all strategies having a building the computer already started to build as key building= -priority added to all strategies having both building the computer already got as key buildings= -value for 2 of a key buildings= -priority added to all strategies having a upgrade the computer already got as key upgrade in first level= -priority added to all strategies having a upgrade the computer already got as key upgrade in second level= -priority added to all strategies having a upgrade the computer already got as key upgrade in third level= -priority added to strategies havign the current profiles favorite unit as key units.= -this race is locked to this strategy number for testing.(-1 is unlocked)= -does the race use healing fountains ?= -does the race need manual loading of wisps in goldmines ?= -What is the unit to load ?= -What unit is it loaded in ?= -does the race have a towerrush ?= -if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= -the item is build towers is must?= -"how many items at a time , if can buy"= -what is the id of the races towers?= -"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= -what is the id of the tower upgrade1 (core)?= -what is the id of the tower upgrade2 (secondary)?= -"tower can move , like ELF tree or StarCraft human build fly?"= -what is the order of tower start move? -- like use root to loc move= -what is the unorder of tower end move?= -"tower is peon become , like ELF? AI will compensate more 2 peon"= -"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= -what is the building required to build towers ?= -how high (in percent) is the probability of doing a tower rush?= -does the race have a militia expansion ?= -how many racial heroes ?= -"a basic melee unit, only necessary when basic_melee is used"= -"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= -has the race a ghoul-like wood harvester/fighter unit ?= -do those ghouls go with the army on attacks ?= -can multiple racial workers work on the same building ?= -has the race no wood harvesters ?= -should the race leave injured units at home ?= -does the race expand with a mine building like undead ?= -does the race use the goblin shredder ?= -does the race have militia ?= -how far away from the town hall are the militia allowed ?= -what is the militia unit type id?= -what is the militia ability id ?= -what is the militia ability of the hall ?= -what is the unitstring/name of the militia ?= -what is the string of the unit that can be turned to militia ?= -shall the computer only use militias against larger threats ?= -can the race expand with an uprooted building that also helps fighting the creeps ?= -how high (in percent) is the probability of doing an ancient expansion when possible ?= -up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= -the unit id of the unit that should help in ancient expansion= -can expand with item building ?= -how high (in percent) is the probability of doing a item expansion ?= -buy expand item need hall level ?= -what is expand item name(from StandardUnits.txt) ?= -does the race sell ziggurats that are at no more needed expansions ?= -keep ziggurat if this near another building except a ziggurat is= -should the race build farms towards the front (as soon as the front is computed) ?= -limit the number of farms at the front to this number= -the first that many farms will be built at the mine= -the maximum distance between the mine and the expansion building= -Racial farms have healing properties= -the bonus strength value hero must have to be able to do the tower rush= -the bonus strength value hero must have to be able to do the ancient expansion= -priority for ghoul building= -smallest number of ghouls to build at all times= -maximum number of ghouls to build in low lumber situations= -" Used to create path units, must be different from race peon"= -Building id that can house peons/units and then shoot enemies.= -// Used to trigger melee defeat conditions on surrender.= -"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= +prio_q_inc= +farm_food2= +farm_prio= +peon_prio= +expa_prio= +expa_emergency_prio= +expa_rebuild_prio= +peon_1_mine_number= +peon_2_mines_number= +peon_mines_number= +min_peon_number_single_mine= +min_peon_number_double_mine= +min_peon_number_multi_mine= +strat_food_persistence= +relevant_strat_change_number= +kb_add1= +kb_add2= +kb_add3= +kb_add4= +ku_add1= +ku_add2= +ku_add3= +fav_unit_add= +debug_strategy= +race_use_fountain= +race_manual_loading= +race_manual_loading_wisp= +race_manual_loading_mine= +race_towerrush_available= +race_tower_item= +race_tower_item_must= +race_tower_item_quantity= +race_tower_id= +race_tower_id_replace= +race_tower_upgrade1= +race_tower_upgrade2= +race_tower_move= +race_tower_movestartstring= +race_tower_moveendstring= +race_tower_bypeon= +race_tower_peon= +race_towerrush_requirement= +race_towerrush_probability= +race_militia_expansion_available= +race_hero_number= +race_simple_melee= +race_advanced_melee= +race_has_ghouls= +race_ghouls_attack= +race_has_power_build= +race_no_wood_harvest= +race_ignore_injured= +race_uses_mine_expansion= +race_uses_shredder= +race_militia_available= +race_militia_max_distance= +race_militia_id= +race_militia_ability= +race_militia_hall_ability= +race_militia_unitstring= +race_militiaworker_unitstring= +use_militia_only_on_bigger_threats= +race_ancient_expansion_available= +race_ancient_expansion_probability= +race_ancient_expansion_strength= +race_ancient_expansion_help_id= +race_item_expansion_available= +race_item_expansion_probability= +race_item_sale_level= +race_item_expansion_item_id= +race_sell_ziggurats= +race_ziggurat_keep_distance= +race_build_farms_front= +race_farms_front_limit= +race_farms_at_mine= +race_max_expa_mine_distance= +race_has_moonwells= +race_towerrush_hero_rush_level= +race_ancient_expansion_hero_rush_level= +ghoul_prio= +race_min_ghouls= +race_max_ghouls= +groundid= +racial_burrow= +structid= +race_ancient_barracks_rush_chance= Strategy Function Name= Default Name= diff --git a/Languages/Portuguese/StrategyManager.txt b/Languages/Portuguese/StrategyManager.txt index 4fb861fbe..613672c20 100644 --- a/Languages/Portuguese/StrategyManager.txt +++ b/Languages/Portuguese/StrategyManager.txt @@ -52,193 +52,195 @@ title_strategy_editor= title_racial_builds_editor= title_settings_editor= -increases performance by checking stuff not so often= -how many computer players is needed tor the sleep multiplier to start increasing.= -how many computer players is needed tor the sleep multiplier to stop increasing.= -how much is the sleep multiplied when it's below the slm_start condition= -how much is the sleep multiplied when it's above the slm_end condition= -scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= -should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= -computers only repair buildings if they have more than this many workers= -computers only repair buildings when the town is under attack if they got more than this many workers= -Distance behind the army a zeppelin follows= -when is neutral heroes available in seconds /5= -how close to a shop do a unit have to be for buying?= -time in seconds the hero goes to a shop before it gives up if it haven't reached it= -time in seconds a hero tries to buy items at shop before giving up= -"every this * 5 seconds, the build array is reset"= -normalizing strategy priorities added from strengths with this value= -the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= -strategy when attacking enemy players= -"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= -Distance from ranged units enemy units can be targeted with focus fire= -Distance from melee units enemy units can be targeted with focus fire= -Units flee from battle if the health goes below his % value(0.25 is 25%)= -Units flee from battle if the health goes below this= -how near the units a statue used by undead should be in the fights= -units will stay within this radius from a hero that is using town portal= -computers give extra gold above this value to other computers on the same team in need of gold= -computers give extra lumber above this value to other computers on the same team in need of lumber= -how many towns is a computer allowed to have?= -Add the [AMAI] tag in front of name= -Add the current skill after the name= -how many different harass groups you can use= -"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= -the radius araound a mine computers check for creeps before expanding there= -how far away from ranged enemy units harassing units attack a inferior enemy unit= -how far away from melee enemy units harassing units attack a inferior enemy unit= -how far away from ranged enemy units harassing units turn and flee= -how far away from melee enemy units harassing units turn and flee= -computers use chat taunts= -a enemy army within this distance is counted as a full threat= -a enemy army outside this distance is counted as no threat= -how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= -"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= -accepted threat level increase starts at this time= -and ends at that time= -it starts with this value= -and ends with that value= -accepted threat level multiplier increases at that enemy number= -until that enemy number= -the multiplier starts for accepted threat level starts with this= -and ends with this= -Army uses TP to get home and defend if a threat is greater than this= -Army uses TP to get home and defend if a threat is greater than this= -Army won't use TP home if they are closer to base than this and a low threat level appears= -Army won't use TP home if they are closer to base than this and a high threat level appears= -how big the army need to be for use of TP to threatened town= -minimum threat level TP use is allowed on= -how many peons does a goblin shredder replace in lumber harvesting= -computers don't build any workers for lumber harvesting if they have more lumber than this= -computers build all needed workers for lumber harvesting if they have lumber lower than this= -does the version have neutral heroes ?= -how many neutral heroes ?= -can only heroes buy stuff ?= -what is the versions food limit ?= -units within that radius are considered belonging to the current battle= -"same as with normal_battle_radius, but for battles against creeps"= -how near a mine a enemy building must be to make amai recognize it as taken= -what is the base strength of a hero (the level number is added to get the actual strength) ?= -at what level do the heroes get their ultimates ?= -how much extra strength does the ultimate give to the hero ?= -how far away do creeps attack buildings ?= -can mercs be bought at night without waking up creeps ?= -check for towers in this radius around a target= -check for towers in this radius during harassing= -don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= -Should the buildings of the AI be destroyed on defeat or given to neutral player ?= -reform the attack group (getting new units) every that time on an attack (in seconds / 2)= -the distance of the front locations from the start location= -Does this version have heroes?= -Enable to force computers to have there fixed name instead of a profile name= -Bonus strength added to minor creep camps= -Bonus strength added to mediocre creep camps= -Bonus strength added to major creep camps= -Can turn on for debugging mode to display debug type messages= -New strategy priority must be larger than this multiple to the current strategy= -Set to true to stop amai from giving up early when it detects its going to lose= -Priority to choose the first line of hero skills= -Priority to choose the second line of hero skills= -Priority to choose the third line of hero skills= -priority added to heroes to be picked if they are favorites of the used profile= -The optimal number of peons that should be harvesting gold= -Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= -Multiplier to players strength at highest aggression to measure if amai allowed to flee= -Multipler to players strength at highest aggression to measure if amai will flee= -Aggression below this uses the lowest strength flee multiplier= -Agression above this uses the highest strength flee multiplier= +sleep_multiplier= +slm_start= +slm_end= +slm_start_mult= +slm_end_mult= +hero_radius= +use_linear_upkeep_saving= +repair_threshold= +repair_threshold_threatened= +max_follow_dist= +neutral_hero_time= +buy_distance= +buy_timeout_large= +buy_timeout_small= +rp_strat_normal= +build_array_reset_time= +strategy_tier_bonus= +attacking_strategy= +focus_fire_limit= +focus_fire_ranged_dist= +focus_fire_melee_dist= +flee_health_percentage= +flee_minimum_health= +statue_distance= +teleport_radius= +gold_exchange_level= +wood_exchange_level= +max_towns= +add_tag= +add_skill= +fav_hero_add= +max_harass_groups= +attacking_aggression= +expansion_radius= +harass_radius_attack_ranged= +harass_radius_attack_melee= +harass_radius_flee_ranged= +harass_radius_flee_melee= +chatting= +full_threat_distance= +no_threat_distance= +distance_threat_exponent= +distance_threat_mult= +atl_time_start= +atl_time_end= +atl_time_start_val= +atl_time_end_val= +atl_enemy_start= +atl_enemy_end= +atl_enemy_start_mult= +atl_enemy_end_mult= +teleport_low_threat= +teleport_high_threat= +teleport_low_threat_distance= +teleport_high_threat_distance= +teleport_army_min_strength= +teleport_min_threat= +shredder_peon_count= +minimum_peon_wood= +maximum_peon_wood= +ver_neutral_heroes_available= +ver_neutral_hero_number= +ver_only_heroes_buy= +ver_food_limit= +normal_battle_radius= +creep_battle_radius= +expansion_taken_radius= +ver_hero_base_value= +ver_hero_ultimate_level= +ver_hero_ultimate_value= +ver_creeps_attack_buildings_dist= +ver_mercs_night_buy= +ver_tower_check_radius= +ver_harass_tower_check_radius= +ver_strat_change_enemy_strength_min= +destroy_buildings_on_defeat= +attack_reform_length= +front_base_distance= +ver_heroes= +fixedcomputername= +green_creep_camp_strength_bonus= +orange_creep_camp_strength_bonus= +red_creep_camp_strength_bonus= +debugging= +strategy_change_threshold= +disable_surrender= +major_hero_skill_value= +minor_hero_skill_value= +rare_hero_skill_value= +ver_optimal_gold= +ver_flee_multiple1= +ver_flee_multiple1= +ver_flee_multiple2= +ver_flee_multiple3= +ver_low_aggression= +ver_high_aggression= -priority for reviving hero1= -priority for reviving hero2= -priority for reviving hero3= -priority increase for building needed buildings= -priority increase in time= +hero1_revive_prio= +hero2_revive_prio= +hero3_revive_prio= +prio_n_inc= +prio_t_inc= priority increase in quantity= -builds another farm at the same time when this near food used to food produced= -priority for farm building= -priority for peon building= -priority for expansion building= -priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= -priority for rebuilding an expansion= -number of peons to build when 1 mine is owned= -number of peons to build when 2 mines are owned= -number of peons to build when more mines are owned= -minimum number of peons when 1 mine is owned= -minimum number of peons when 2 mines are owned= -minimum number of peons when more than 1 mine is owned= -* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= -number of strategies with highest RPs that can be chosen when changing strategy= -priority added to all strategies having a building the computer already got as a key building= -priority added to all strategies having a building the computer already started to build as key building= -priority added to all strategies having both building the computer already got as key buildings= -value for 2 of a key buildings= -priority added to all strategies having a upgrade the computer already got as key upgrade in first level= -priority added to all strategies having a upgrade the computer already got as key upgrade in second level= -priority added to all strategies having a upgrade the computer already got as key upgrade in third level= -priority added to strategies havign the current profiles favorite unit as key units.= -this race is locked to this strategy number for testing.(-1 is unlocked)= -does the race use healing fountains ?= -does the race need manual loading of wisps in goldmines ?= -What is the unit to load ?= -What unit is it loaded in ?= -does the race have a towerrush ?= -if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= -the item is build towers is must?= -"how many items at a time , if can buy"= -what is the id of the races towers?= -"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= -what is the id of the tower upgrade1 (core)?= -what is the id of the tower upgrade2 (secondary)?= -"tower can move , like ELF tree or StarCraft human build fly?"= -what is the order of tower start move? -- like use root to loc move= -what is the unorder of tower end move?= -"tower is peon become , like ELF? AI will compensate more 2 peon"= -"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= -what is the building required to build towers ?= -how high (in percent) is the probability of doing a tower rush?= -does the race have a militia expansion ?= -how many racial heroes ?= -"a basic melee unit, only necessary when basic_melee is used"= -"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= -has the race a ghoul-like wood harvester/fighter unit ?= -do those ghouls go with the army on attacks ?= -can multiple racial workers work on the same building ?= -has the race no wood harvesters ?= -should the race leave injured units at home ?= -does the race expand with a mine building like undead ?= -does the race use the goblin shredder ?= -does the race have militia ?= -how far away from the town hall are the militia allowed ?= -what is the militia unit type id?= -what is the militia ability id ?= -what is the militia ability of the hall ?= -what is the unitstring/name of the militia ?= -what is the string of the unit that can be turned to militia ?= -shall the computer only use militias against larger threats ?= -can the race expand with an uprooted building that also helps fighting the creeps ?= -how high (in percent) is the probability of doing an ancient expansion when possible ?= -up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= -the unit id of the unit that should help in ancient expansion= -can expand with item building ?= -how high (in percent) is the probability of doing a item expansion ?= -buy expand item need hall level ?= -what is expand item name(from StandardUnits.txt) ?= -does the race sell ziggurats that are at no more needed expansions ?= -keep ziggurat if this near another building except a ziggurat is= -should the race build farms towards the front (as soon as the front is computed) ?= -limit the number of farms at the front to this number= -the first that many farms will be built at the mine= -the maximum distance between the mine and the expansion building= -Racial farms have healing properties= -the bonus strength value hero must have to be able to do the tower rush= -the bonus strength value hero must have to be able to do the ancient expansion= -priority for ghoul building= -smallest number of ghouls to build at all times= -maximum number of ghouls to build in low lumber situations= -" Used to create path units, must be different from race peon"= -Building id that can house peons/units and then shoot enemies.= -// Used to trigger melee defeat conditions on surrender.= -"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= +prio_q_inc= +farm_food2= +farm_prio= +peon_prio= +expa_prio= +expa_emergency_prio= +expa_rebuild_prio= +peon_1_mine_number= +peon_2_mines_number= +peon_mines_number= +min_peon_number_single_mine= +min_peon_number_double_mine= +min_peon_number_multi_mine= +strat_food_persistence= +relevant_strat_change_number= +kb_add1= +kb_add2= +kb_add3= +kb_add4= +ku_add1= +ku_add2= +ku_add3= +fav_unit_add= +debug_strategy= +race_use_fountain= +race_manual_loading= +race_manual_loading_wisp= +race_manual_loading_mine= +race_towerrush_available= +race_tower_item= +race_tower_item_must= +race_tower_item_quantity= +race_tower_id= +race_tower_id_replace= +race_tower_upgrade1= +race_tower_upgrade2= +race_tower_move= +race_tower_movestartstring= +race_tower_moveendstring= +race_tower_bypeon= +race_tower_peon= +race_towerrush_requirement= +race_towerrush_probability= +race_militia_expansion_available= +race_hero_number= +race_simple_melee= +race_advanced_melee= +race_has_ghouls= +race_ghouls_attack= +race_has_power_build= +race_no_wood_harvest= +race_ignore_injured= +race_uses_mine_expansion= +race_uses_shredder= +race_militia_available= +race_militia_max_distance= +race_militia_id= +race_militia_ability= +race_militia_hall_ability= +race_militia_unitstring= +race_militiaworker_unitstring= +use_militia_only_on_bigger_threats= +race_ancient_expansion_available= +race_ancient_expansion_probability= +race_ancient_expansion_strength= +race_ancient_expansion_help_id= +race_item_expansion_available= +race_item_expansion_probability= +race_item_sale_level= +race_item_expansion_item_id= +race_sell_ziggurats= +race_ziggurat_keep_distance= +race_build_farms_front= +race_farms_front_limit= +race_farms_at_mine= +race_max_expa_mine_distance= +race_has_moonwells= +race_towerrush_hero_rush_level= +race_ancient_expansion_hero_rush_level= +ghoul_prio= +race_min_ghouls= +race_max_ghouls= +groundid= +racial_burrow= +structid= +race_ancient_barracks_rush_chance= Strategy Function Name= Default Name= diff --git a/Languages/Romanian/StrategyManager.txt b/Languages/Romanian/StrategyManager.txt index 4fb861fbe..613672c20 100644 --- a/Languages/Romanian/StrategyManager.txt +++ b/Languages/Romanian/StrategyManager.txt @@ -52,193 +52,195 @@ title_strategy_editor= title_racial_builds_editor= title_settings_editor= -increases performance by checking stuff not so often= -how many computer players is needed tor the sleep multiplier to start increasing.= -how many computer players is needed tor the sleep multiplier to stop increasing.= -how much is the sleep multiplied when it's below the slm_start condition= -how much is the sleep multiplied when it's above the slm_end condition= -scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= -should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= -computers only repair buildings if they have more than this many workers= -computers only repair buildings when the town is under attack if they got more than this many workers= -Distance behind the army a zeppelin follows= -when is neutral heroes available in seconds /5= -how close to a shop do a unit have to be for buying?= -time in seconds the hero goes to a shop before it gives up if it haven't reached it= -time in seconds a hero tries to buy items at shop before giving up= -"every this * 5 seconds, the build array is reset"= -normalizing strategy priorities added from strengths with this value= -the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= -strategy when attacking enemy players= -"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= -Distance from ranged units enemy units can be targeted with focus fire= -Distance from melee units enemy units can be targeted with focus fire= -Units flee from battle if the health goes below his % value(0.25 is 25%)= -Units flee from battle if the health goes below this= -how near the units a statue used by undead should be in the fights= -units will stay within this radius from a hero that is using town portal= -computers give extra gold above this value to other computers on the same team in need of gold= -computers give extra lumber above this value to other computers on the same team in need of lumber= -how many towns is a computer allowed to have?= -Add the [AMAI] tag in front of name= -Add the current skill after the name= -how many different harass groups you can use= -"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= -the radius araound a mine computers check for creeps before expanding there= -how far away from ranged enemy units harassing units attack a inferior enemy unit= -how far away from melee enemy units harassing units attack a inferior enemy unit= -how far away from ranged enemy units harassing units turn and flee= -how far away from melee enemy units harassing units turn and flee= -computers use chat taunts= -a enemy army within this distance is counted as a full threat= -a enemy army outside this distance is counted as no threat= -how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= -"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= -accepted threat level increase starts at this time= -and ends at that time= -it starts with this value= -and ends with that value= -accepted threat level multiplier increases at that enemy number= -until that enemy number= -the multiplier starts for accepted threat level starts with this= -and ends with this= -Army uses TP to get home and defend if a threat is greater than this= -Army uses TP to get home and defend if a threat is greater than this= -Army won't use TP home if they are closer to base than this and a low threat level appears= -Army won't use TP home if they are closer to base than this and a high threat level appears= -how big the army need to be for use of TP to threatened town= -minimum threat level TP use is allowed on= -how many peons does a goblin shredder replace in lumber harvesting= -computers don't build any workers for lumber harvesting if they have more lumber than this= -computers build all needed workers for lumber harvesting if they have lumber lower than this= -does the version have neutral heroes ?= -how many neutral heroes ?= -can only heroes buy stuff ?= -what is the versions food limit ?= -units within that radius are considered belonging to the current battle= -"same as with normal_battle_radius, but for battles against creeps"= -how near a mine a enemy building must be to make amai recognize it as taken= -what is the base strength of a hero (the level number is added to get the actual strength) ?= -at what level do the heroes get their ultimates ?= -how much extra strength does the ultimate give to the hero ?= -how far away do creeps attack buildings ?= -can mercs be bought at night without waking up creeps ?= -check for towers in this radius around a target= -check for towers in this radius during harassing= -don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= -Should the buildings of the AI be destroyed on defeat or given to neutral player ?= -reform the attack group (getting new units) every that time on an attack (in seconds / 2)= -the distance of the front locations from the start location= -Does this version have heroes?= -Enable to force computers to have there fixed name instead of a profile name= -Bonus strength added to minor creep camps= -Bonus strength added to mediocre creep camps= -Bonus strength added to major creep camps= -Can turn on for debugging mode to display debug type messages= -New strategy priority must be larger than this multiple to the current strategy= -Set to true to stop amai from giving up early when it detects its going to lose= -Priority to choose the first line of hero skills= -Priority to choose the second line of hero skills= -Priority to choose the third line of hero skills= -priority added to heroes to be picked if they are favorites of the used profile= -The optimal number of peons that should be harvesting gold= -Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= -Multiplier to players strength at highest aggression to measure if amai allowed to flee= -Multipler to players strength at highest aggression to measure if amai will flee= -Aggression below this uses the lowest strength flee multiplier= -Agression above this uses the highest strength flee multiplier= +sleep_multiplier= +slm_start= +slm_end= +slm_start_mult= +slm_end_mult= +hero_radius= +use_linear_upkeep_saving= +repair_threshold= +repair_threshold_threatened= +max_follow_dist= +neutral_hero_time= +buy_distance= +buy_timeout_large= +buy_timeout_small= +rp_strat_normal= +build_array_reset_time= +strategy_tier_bonus= +attacking_strategy= +focus_fire_limit= +focus_fire_ranged_dist= +focus_fire_melee_dist= +flee_health_percentage= +flee_minimum_health= +statue_distance= +teleport_radius= +gold_exchange_level= +wood_exchange_level= +max_towns= +add_tag= +add_skill= +fav_hero_add= +max_harass_groups= +attacking_aggression= +expansion_radius= +harass_radius_attack_ranged= +harass_radius_attack_melee= +harass_radius_flee_ranged= +harass_radius_flee_melee= +chatting= +full_threat_distance= +no_threat_distance= +distance_threat_exponent= +distance_threat_mult= +atl_time_start= +atl_time_end= +atl_time_start_val= +atl_time_end_val= +atl_enemy_start= +atl_enemy_end= +atl_enemy_start_mult= +atl_enemy_end_mult= +teleport_low_threat= +teleport_high_threat= +teleport_low_threat_distance= +teleport_high_threat_distance= +teleport_army_min_strength= +teleport_min_threat= +shredder_peon_count= +minimum_peon_wood= +maximum_peon_wood= +ver_neutral_heroes_available= +ver_neutral_hero_number= +ver_only_heroes_buy= +ver_food_limit= +normal_battle_radius= +creep_battle_radius= +expansion_taken_radius= +ver_hero_base_value= +ver_hero_ultimate_level= +ver_hero_ultimate_value= +ver_creeps_attack_buildings_dist= +ver_mercs_night_buy= +ver_tower_check_radius= +ver_harass_tower_check_radius= +ver_strat_change_enemy_strength_min= +destroy_buildings_on_defeat= +attack_reform_length= +front_base_distance= +ver_heroes= +fixedcomputername= +green_creep_camp_strength_bonus= +orange_creep_camp_strength_bonus= +red_creep_camp_strength_bonus= +debugging= +strategy_change_threshold= +disable_surrender= +major_hero_skill_value= +minor_hero_skill_value= +rare_hero_skill_value= +ver_optimal_gold= +ver_flee_multiple1= +ver_flee_multiple1= +ver_flee_multiple2= +ver_flee_multiple3= +ver_low_aggression= +ver_high_aggression= -priority for reviving hero1= -priority for reviving hero2= -priority for reviving hero3= -priority increase for building needed buildings= -priority increase in time= +hero1_revive_prio= +hero2_revive_prio= +hero3_revive_prio= +prio_n_inc= +prio_t_inc= priority increase in quantity= -builds another farm at the same time when this near food used to food produced= -priority for farm building= -priority for peon building= -priority for expansion building= -priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= -priority for rebuilding an expansion= -number of peons to build when 1 mine is owned= -number of peons to build when 2 mines are owned= -number of peons to build when more mines are owned= -minimum number of peons when 1 mine is owned= -minimum number of peons when 2 mines are owned= -minimum number of peons when more than 1 mine is owned= -* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= -number of strategies with highest RPs that can be chosen when changing strategy= -priority added to all strategies having a building the computer already got as a key building= -priority added to all strategies having a building the computer already started to build as key building= -priority added to all strategies having both building the computer already got as key buildings= -value for 2 of a key buildings= -priority added to all strategies having a upgrade the computer already got as key upgrade in first level= -priority added to all strategies having a upgrade the computer already got as key upgrade in second level= -priority added to all strategies having a upgrade the computer already got as key upgrade in third level= -priority added to strategies havign the current profiles favorite unit as key units.= -this race is locked to this strategy number for testing.(-1 is unlocked)= -does the race use healing fountains ?= -does the race need manual loading of wisps in goldmines ?= -What is the unit to load ?= -What unit is it loaded in ?= -does the race have a towerrush ?= -if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= -the item is build towers is must?= -"how many items at a time , if can buy"= -what is the id of the races towers?= -"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= -what is the id of the tower upgrade1 (core)?= -what is the id of the tower upgrade2 (secondary)?= -"tower can move , like ELF tree or StarCraft human build fly?"= -what is the order of tower start move? -- like use root to loc move= -what is the unorder of tower end move?= -"tower is peon become , like ELF? AI will compensate more 2 peon"= -"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= -what is the building required to build towers ?= -how high (in percent) is the probability of doing a tower rush?= -does the race have a militia expansion ?= -how many racial heroes ?= -"a basic melee unit, only necessary when basic_melee is used"= -"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= -has the race a ghoul-like wood harvester/fighter unit ?= -do those ghouls go with the army on attacks ?= -can multiple racial workers work on the same building ?= -has the race no wood harvesters ?= -should the race leave injured units at home ?= -does the race expand with a mine building like undead ?= -does the race use the goblin shredder ?= -does the race have militia ?= -how far away from the town hall are the militia allowed ?= -what is the militia unit type id?= -what is the militia ability id ?= -what is the militia ability of the hall ?= -what is the unitstring/name of the militia ?= -what is the string of the unit that can be turned to militia ?= -shall the computer only use militias against larger threats ?= -can the race expand with an uprooted building that also helps fighting the creeps ?= -how high (in percent) is the probability of doing an ancient expansion when possible ?= -up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= -the unit id of the unit that should help in ancient expansion= -can expand with item building ?= -how high (in percent) is the probability of doing a item expansion ?= -buy expand item need hall level ?= -what is expand item name(from StandardUnits.txt) ?= -does the race sell ziggurats that are at no more needed expansions ?= -keep ziggurat if this near another building except a ziggurat is= -should the race build farms towards the front (as soon as the front is computed) ?= -limit the number of farms at the front to this number= -the first that many farms will be built at the mine= -the maximum distance between the mine and the expansion building= -Racial farms have healing properties= -the bonus strength value hero must have to be able to do the tower rush= -the bonus strength value hero must have to be able to do the ancient expansion= -priority for ghoul building= -smallest number of ghouls to build at all times= -maximum number of ghouls to build in low lumber situations= -" Used to create path units, must be different from race peon"= -Building id that can house peons/units and then shoot enemies.= -// Used to trigger melee defeat conditions on surrender.= -"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= +prio_q_inc= +farm_food2= +farm_prio= +peon_prio= +expa_prio= +expa_emergency_prio= +expa_rebuild_prio= +peon_1_mine_number= +peon_2_mines_number= +peon_mines_number= +min_peon_number_single_mine= +min_peon_number_double_mine= +min_peon_number_multi_mine= +strat_food_persistence= +relevant_strat_change_number= +kb_add1= +kb_add2= +kb_add3= +kb_add4= +ku_add1= +ku_add2= +ku_add3= +fav_unit_add= +debug_strategy= +race_use_fountain= +race_manual_loading= +race_manual_loading_wisp= +race_manual_loading_mine= +race_towerrush_available= +race_tower_item= +race_tower_item_must= +race_tower_item_quantity= +race_tower_id= +race_tower_id_replace= +race_tower_upgrade1= +race_tower_upgrade2= +race_tower_move= +race_tower_movestartstring= +race_tower_moveendstring= +race_tower_bypeon= +race_tower_peon= +race_towerrush_requirement= +race_towerrush_probability= +race_militia_expansion_available= +race_hero_number= +race_simple_melee= +race_advanced_melee= +race_has_ghouls= +race_ghouls_attack= +race_has_power_build= +race_no_wood_harvest= +race_ignore_injured= +race_uses_mine_expansion= +race_uses_shredder= +race_militia_available= +race_militia_max_distance= +race_militia_id= +race_militia_ability= +race_militia_hall_ability= +race_militia_unitstring= +race_militiaworker_unitstring= +use_militia_only_on_bigger_threats= +race_ancient_expansion_available= +race_ancient_expansion_probability= +race_ancient_expansion_strength= +race_ancient_expansion_help_id= +race_item_expansion_available= +race_item_expansion_probability= +race_item_sale_level= +race_item_expansion_item_id= +race_sell_ziggurats= +race_ziggurat_keep_distance= +race_build_farms_front= +race_farms_front_limit= +race_farms_at_mine= +race_max_expa_mine_distance= +race_has_moonwells= +race_towerrush_hero_rush_level= +race_ancient_expansion_hero_rush_level= +ghoul_prio= +race_min_ghouls= +race_max_ghouls= +groundid= +racial_burrow= +structid= +race_ancient_barracks_rush_chance= Strategy Function Name= Default Name= diff --git a/Languages/Russian/StrategyManager.txt b/Languages/Russian/StrategyManager.txt index 4fb861fbe..613672c20 100644 --- a/Languages/Russian/StrategyManager.txt +++ b/Languages/Russian/StrategyManager.txt @@ -52,193 +52,195 @@ title_strategy_editor= title_racial_builds_editor= title_settings_editor= -increases performance by checking stuff not so often= -how many computer players is needed tor the sleep multiplier to start increasing.= -how many computer players is needed tor the sleep multiplier to stop increasing.= -how much is the sleep multiplied when it's below the slm_start condition= -how much is the sleep multiplied when it's above the slm_end condition= -scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= -should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= -computers only repair buildings if they have more than this many workers= -computers only repair buildings when the town is under attack if they got more than this many workers= -Distance behind the army a zeppelin follows= -when is neutral heroes available in seconds /5= -how close to a shop do a unit have to be for buying?= -time in seconds the hero goes to a shop before it gives up if it haven't reached it= -time in seconds a hero tries to buy items at shop before giving up= -"every this * 5 seconds, the build array is reset"= -normalizing strategy priorities added from strengths with this value= -the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= -strategy when attacking enemy players= -"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= -Distance from ranged units enemy units can be targeted with focus fire= -Distance from melee units enemy units can be targeted with focus fire= -Units flee from battle if the health goes below his % value(0.25 is 25%)= -Units flee from battle if the health goes below this= -how near the units a statue used by undead should be in the fights= -units will stay within this radius from a hero that is using town portal= -computers give extra gold above this value to other computers on the same team in need of gold= -computers give extra lumber above this value to other computers on the same team in need of lumber= -how many towns is a computer allowed to have?= -Add the [AMAI] tag in front of name= -Add the current skill after the name= -how many different harass groups you can use= -"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= -the radius araound a mine computers check for creeps before expanding there= -how far away from ranged enemy units harassing units attack a inferior enemy unit= -how far away from melee enemy units harassing units attack a inferior enemy unit= -how far away from ranged enemy units harassing units turn and flee= -how far away from melee enemy units harassing units turn and flee= -computers use chat taunts= -a enemy army within this distance is counted as a full threat= -a enemy army outside this distance is counted as no threat= -how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= -"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= -accepted threat level increase starts at this time= -and ends at that time= -it starts with this value= -and ends with that value= -accepted threat level multiplier increases at that enemy number= -until that enemy number= -the multiplier starts for accepted threat level starts with this= -and ends with this= -Army uses TP to get home and defend if a threat is greater than this= -Army uses TP to get home and defend if a threat is greater than this= -Army won't use TP home if they are closer to base than this and a low threat level appears= -Army won't use TP home if they are closer to base than this and a high threat level appears= -how big the army need to be for use of TP to threatened town= -minimum threat level TP use is allowed on= -how many peons does a goblin shredder replace in lumber harvesting= -computers don't build any workers for lumber harvesting if they have more lumber than this= -computers build all needed workers for lumber harvesting if they have lumber lower than this= -does the version have neutral heroes ?= -how many neutral heroes ?= -can only heroes buy stuff ?= -what is the versions food limit ?= -units within that radius are considered belonging to the current battle= -"same as with normal_battle_radius, but for battles against creeps"= -how near a mine a enemy building must be to make amai recognize it as taken= -what is the base strength of a hero (the level number is added to get the actual strength) ?= -at what level do the heroes get their ultimates ?= -how much extra strength does the ultimate give to the hero ?= -how far away do creeps attack buildings ?= -can mercs be bought at night without waking up creeps ?= -check for towers in this radius around a target= -check for towers in this radius during harassing= -don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= -Should the buildings of the AI be destroyed on defeat or given to neutral player ?= -reform the attack group (getting new units) every that time on an attack (in seconds / 2)= -the distance of the front locations from the start location= -Does this version have heroes?= -Enable to force computers to have there fixed name instead of a profile name= -Bonus strength added to minor creep camps= -Bonus strength added to mediocre creep camps= -Bonus strength added to major creep camps= -Can turn on for debugging mode to display debug type messages= -New strategy priority must be larger than this multiple to the current strategy= -Set to true to stop amai from giving up early when it detects its going to lose= -Priority to choose the first line of hero skills= -Priority to choose the second line of hero skills= -Priority to choose the third line of hero skills= -priority added to heroes to be picked if they are favorites of the used profile= -The optimal number of peons that should be harvesting gold= -Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= -Multiplier to players strength at highest aggression to measure if amai allowed to flee= -Multipler to players strength at highest aggression to measure if amai will flee= -Aggression below this uses the lowest strength flee multiplier= -Agression above this uses the highest strength flee multiplier= +sleep_multiplier= +slm_start= +slm_end= +slm_start_mult= +slm_end_mult= +hero_radius= +use_linear_upkeep_saving= +repair_threshold= +repair_threshold_threatened= +max_follow_dist= +neutral_hero_time= +buy_distance= +buy_timeout_large= +buy_timeout_small= +rp_strat_normal= +build_array_reset_time= +strategy_tier_bonus= +attacking_strategy= +focus_fire_limit= +focus_fire_ranged_dist= +focus_fire_melee_dist= +flee_health_percentage= +flee_minimum_health= +statue_distance= +teleport_radius= +gold_exchange_level= +wood_exchange_level= +max_towns= +add_tag= +add_skill= +fav_hero_add= +max_harass_groups= +attacking_aggression= +expansion_radius= +harass_radius_attack_ranged= +harass_radius_attack_melee= +harass_radius_flee_ranged= +harass_radius_flee_melee= +chatting= +full_threat_distance= +no_threat_distance= +distance_threat_exponent= +distance_threat_mult= +atl_time_start= +atl_time_end= +atl_time_start_val= +atl_time_end_val= +atl_enemy_start= +atl_enemy_end= +atl_enemy_start_mult= +atl_enemy_end_mult= +teleport_low_threat= +teleport_high_threat= +teleport_low_threat_distance= +teleport_high_threat_distance= +teleport_army_min_strength= +teleport_min_threat= +shredder_peon_count= +minimum_peon_wood= +maximum_peon_wood= +ver_neutral_heroes_available= +ver_neutral_hero_number= +ver_only_heroes_buy= +ver_food_limit= +normal_battle_radius= +creep_battle_radius= +expansion_taken_radius= +ver_hero_base_value= +ver_hero_ultimate_level= +ver_hero_ultimate_value= +ver_creeps_attack_buildings_dist= +ver_mercs_night_buy= +ver_tower_check_radius= +ver_harass_tower_check_radius= +ver_strat_change_enemy_strength_min= +destroy_buildings_on_defeat= +attack_reform_length= +front_base_distance= +ver_heroes= +fixedcomputername= +green_creep_camp_strength_bonus= +orange_creep_camp_strength_bonus= +red_creep_camp_strength_bonus= +debugging= +strategy_change_threshold= +disable_surrender= +major_hero_skill_value= +minor_hero_skill_value= +rare_hero_skill_value= +ver_optimal_gold= +ver_flee_multiple1= +ver_flee_multiple1= +ver_flee_multiple2= +ver_flee_multiple3= +ver_low_aggression= +ver_high_aggression= -priority for reviving hero1= -priority for reviving hero2= -priority for reviving hero3= -priority increase for building needed buildings= -priority increase in time= +hero1_revive_prio= +hero2_revive_prio= +hero3_revive_prio= +prio_n_inc= +prio_t_inc= priority increase in quantity= -builds another farm at the same time when this near food used to food produced= -priority for farm building= -priority for peon building= -priority for expansion building= -priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= -priority for rebuilding an expansion= -number of peons to build when 1 mine is owned= -number of peons to build when 2 mines are owned= -number of peons to build when more mines are owned= -minimum number of peons when 1 mine is owned= -minimum number of peons when 2 mines are owned= -minimum number of peons when more than 1 mine is owned= -* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= -number of strategies with highest RPs that can be chosen when changing strategy= -priority added to all strategies having a building the computer already got as a key building= -priority added to all strategies having a building the computer already started to build as key building= -priority added to all strategies having both building the computer already got as key buildings= -value for 2 of a key buildings= -priority added to all strategies having a upgrade the computer already got as key upgrade in first level= -priority added to all strategies having a upgrade the computer already got as key upgrade in second level= -priority added to all strategies having a upgrade the computer already got as key upgrade in third level= -priority added to strategies havign the current profiles favorite unit as key units.= -this race is locked to this strategy number for testing.(-1 is unlocked)= -does the race use healing fountains ?= -does the race need manual loading of wisps in goldmines ?= -What is the unit to load ?= -What unit is it loaded in ?= -does the race have a towerrush ?= -if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= -the item is build towers is must?= -"how many items at a time , if can buy"= -what is the id of the races towers?= -"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= -what is the id of the tower upgrade1 (core)?= -what is the id of the tower upgrade2 (secondary)?= -"tower can move , like ELF tree or StarCraft human build fly?"= -what is the order of tower start move? -- like use root to loc move= -what is the unorder of tower end move?= -"tower is peon become , like ELF? AI will compensate more 2 peon"= -"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= -what is the building required to build towers ?= -how high (in percent) is the probability of doing a tower rush?= -does the race have a militia expansion ?= -how many racial heroes ?= -"a basic melee unit, only necessary when basic_melee is used"= -"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= -has the race a ghoul-like wood harvester/fighter unit ?= -do those ghouls go with the army on attacks ?= -can multiple racial workers work on the same building ?= -has the race no wood harvesters ?= -should the race leave injured units at home ?= -does the race expand with a mine building like undead ?= -does the race use the goblin shredder ?= -does the race have militia ?= -how far away from the town hall are the militia allowed ?= -what is the militia unit type id?= -what is the militia ability id ?= -what is the militia ability of the hall ?= -what is the unitstring/name of the militia ?= -what is the string of the unit that can be turned to militia ?= -shall the computer only use militias against larger threats ?= -can the race expand with an uprooted building that also helps fighting the creeps ?= -how high (in percent) is the probability of doing an ancient expansion when possible ?= -up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= -the unit id of the unit that should help in ancient expansion= -can expand with item building ?= -how high (in percent) is the probability of doing a item expansion ?= -buy expand item need hall level ?= -what is expand item name(from StandardUnits.txt) ?= -does the race sell ziggurats that are at no more needed expansions ?= -keep ziggurat if this near another building except a ziggurat is= -should the race build farms towards the front (as soon as the front is computed) ?= -limit the number of farms at the front to this number= -the first that many farms will be built at the mine= -the maximum distance between the mine and the expansion building= -Racial farms have healing properties= -the bonus strength value hero must have to be able to do the tower rush= -the bonus strength value hero must have to be able to do the ancient expansion= -priority for ghoul building= -smallest number of ghouls to build at all times= -maximum number of ghouls to build in low lumber situations= -" Used to create path units, must be different from race peon"= -Building id that can house peons/units and then shoot enemies.= -// Used to trigger melee defeat conditions on surrender.= -"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= +prio_q_inc= +farm_food2= +farm_prio= +peon_prio= +expa_prio= +expa_emergency_prio= +expa_rebuild_prio= +peon_1_mine_number= +peon_2_mines_number= +peon_mines_number= +min_peon_number_single_mine= +min_peon_number_double_mine= +min_peon_number_multi_mine= +strat_food_persistence= +relevant_strat_change_number= +kb_add1= +kb_add2= +kb_add3= +kb_add4= +ku_add1= +ku_add2= +ku_add3= +fav_unit_add= +debug_strategy= +race_use_fountain= +race_manual_loading= +race_manual_loading_wisp= +race_manual_loading_mine= +race_towerrush_available= +race_tower_item= +race_tower_item_must= +race_tower_item_quantity= +race_tower_id= +race_tower_id_replace= +race_tower_upgrade1= +race_tower_upgrade2= +race_tower_move= +race_tower_movestartstring= +race_tower_moveendstring= +race_tower_bypeon= +race_tower_peon= +race_towerrush_requirement= +race_towerrush_probability= +race_militia_expansion_available= +race_hero_number= +race_simple_melee= +race_advanced_melee= +race_has_ghouls= +race_ghouls_attack= +race_has_power_build= +race_no_wood_harvest= +race_ignore_injured= +race_uses_mine_expansion= +race_uses_shredder= +race_militia_available= +race_militia_max_distance= +race_militia_id= +race_militia_ability= +race_militia_hall_ability= +race_militia_unitstring= +race_militiaworker_unitstring= +use_militia_only_on_bigger_threats= +race_ancient_expansion_available= +race_ancient_expansion_probability= +race_ancient_expansion_strength= +race_ancient_expansion_help_id= +race_item_expansion_available= +race_item_expansion_probability= +race_item_sale_level= +race_item_expansion_item_id= +race_sell_ziggurats= +race_ziggurat_keep_distance= +race_build_farms_front= +race_farms_front_limit= +race_farms_at_mine= +race_max_expa_mine_distance= +race_has_moonwells= +race_towerrush_hero_rush_level= +race_ancient_expansion_hero_rush_level= +ghoul_prio= +race_min_ghouls= +race_max_ghouls= +groundid= +racial_burrow= +structid= +race_ancient_barracks_rush_chance= Strategy Function Name= Default Name= diff --git a/Languages/Spanish/StrategyManager.txt b/Languages/Spanish/StrategyManager.txt index 4fb861fbe..613672c20 100644 --- a/Languages/Spanish/StrategyManager.txt +++ b/Languages/Spanish/StrategyManager.txt @@ -52,193 +52,195 @@ title_strategy_editor= title_racial_builds_editor= title_settings_editor= -increases performance by checking stuff not so often= -how many computer players is needed tor the sleep multiplier to start increasing.= -how many computer players is needed tor the sleep multiplier to stop increasing.= -how much is the sleep multiplied when it's below the slm_start condition= -how much is the sleep multiplied when it's above the slm_end condition= -scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= -should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= -computers only repair buildings if they have more than this many workers= -computers only repair buildings when the town is under attack if they got more than this many workers= -Distance behind the army a zeppelin follows= -when is neutral heroes available in seconds /5= -how close to a shop do a unit have to be for buying?= -time in seconds the hero goes to a shop before it gives up if it haven't reached it= -time in seconds a hero tries to buy items at shop before giving up= -"every this * 5 seconds, the build array is reset"= -normalizing strategy priorities added from strengths with this value= -the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= -strategy when attacking enemy players= -"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= -Distance from ranged units enemy units can be targeted with focus fire= -Distance from melee units enemy units can be targeted with focus fire= -Units flee from battle if the health goes below his % value(0.25 is 25%)= -Units flee from battle if the health goes below this= -how near the units a statue used by undead should be in the fights= -units will stay within this radius from a hero that is using town portal= -computers give extra gold above this value to other computers on the same team in need of gold= -computers give extra lumber above this value to other computers on the same team in need of lumber= -how many towns is a computer allowed to have?= -Add the [AMAI] tag in front of name= -Add the current skill after the name= -how many different harass groups you can use= -"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= -the radius araound a mine computers check for creeps before expanding there= -how far away from ranged enemy units harassing units attack a inferior enemy unit= -how far away from melee enemy units harassing units attack a inferior enemy unit= -how far away from ranged enemy units harassing units turn and flee= -how far away from melee enemy units harassing units turn and flee= -computers use chat taunts= -a enemy army within this distance is counted as a full threat= -a enemy army outside this distance is counted as no threat= -how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= -"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= -accepted threat level increase starts at this time= -and ends at that time= -it starts with this value= -and ends with that value= -accepted threat level multiplier increases at that enemy number= -until that enemy number= -the multiplier starts for accepted threat level starts with this= -and ends with this= -Army uses TP to get home and defend if a threat is greater than this= -Army uses TP to get home and defend if a threat is greater than this= -Army won't use TP home if they are closer to base than this and a low threat level appears= -Army won't use TP home if they are closer to base than this and a high threat level appears= -how big the army need to be for use of TP to threatened town= -minimum threat level TP use is allowed on= -how many peons does a goblin shredder replace in lumber harvesting= -computers don't build any workers for lumber harvesting if they have more lumber than this= -computers build all needed workers for lumber harvesting if they have lumber lower than this= -does the version have neutral heroes ?= -how many neutral heroes ?= -can only heroes buy stuff ?= -what is the versions food limit ?= -units within that radius are considered belonging to the current battle= -"same as with normal_battle_radius, but for battles against creeps"= -how near a mine a enemy building must be to make amai recognize it as taken= -what is the base strength of a hero (the level number is added to get the actual strength) ?= -at what level do the heroes get their ultimates ?= -how much extra strength does the ultimate give to the hero ?= -how far away do creeps attack buildings ?= -can mercs be bought at night without waking up creeps ?= -check for towers in this radius around a target= -check for towers in this radius during harassing= -don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= -Should the buildings of the AI be destroyed on defeat or given to neutral player ?= -reform the attack group (getting new units) every that time on an attack (in seconds / 2)= -the distance of the front locations from the start location= -Does this version have heroes?= -Enable to force computers to have there fixed name instead of a profile name= -Bonus strength added to minor creep camps= -Bonus strength added to mediocre creep camps= -Bonus strength added to major creep camps= -Can turn on for debugging mode to display debug type messages= -New strategy priority must be larger than this multiple to the current strategy= -Set to true to stop amai from giving up early when it detects its going to lose= -Priority to choose the first line of hero skills= -Priority to choose the second line of hero skills= -Priority to choose the third line of hero skills= -priority added to heroes to be picked if they are favorites of the used profile= -The optimal number of peons that should be harvesting gold= -Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= -Multiplier to players strength at highest aggression to measure if amai allowed to flee= -Multipler to players strength at highest aggression to measure if amai will flee= -Aggression below this uses the lowest strength flee multiplier= -Agression above this uses the highest strength flee multiplier= +sleep_multiplier= +slm_start= +slm_end= +slm_start_mult= +slm_end_mult= +hero_radius= +use_linear_upkeep_saving= +repair_threshold= +repair_threshold_threatened= +max_follow_dist= +neutral_hero_time= +buy_distance= +buy_timeout_large= +buy_timeout_small= +rp_strat_normal= +build_array_reset_time= +strategy_tier_bonus= +attacking_strategy= +focus_fire_limit= +focus_fire_ranged_dist= +focus_fire_melee_dist= +flee_health_percentage= +flee_minimum_health= +statue_distance= +teleport_radius= +gold_exchange_level= +wood_exchange_level= +max_towns= +add_tag= +add_skill= +fav_hero_add= +max_harass_groups= +attacking_aggression= +expansion_radius= +harass_radius_attack_ranged= +harass_radius_attack_melee= +harass_radius_flee_ranged= +harass_radius_flee_melee= +chatting= +full_threat_distance= +no_threat_distance= +distance_threat_exponent= +distance_threat_mult= +atl_time_start= +atl_time_end= +atl_time_start_val= +atl_time_end_val= +atl_enemy_start= +atl_enemy_end= +atl_enemy_start_mult= +atl_enemy_end_mult= +teleport_low_threat= +teleport_high_threat= +teleport_low_threat_distance= +teleport_high_threat_distance= +teleport_army_min_strength= +teleport_min_threat= +shredder_peon_count= +minimum_peon_wood= +maximum_peon_wood= +ver_neutral_heroes_available= +ver_neutral_hero_number= +ver_only_heroes_buy= +ver_food_limit= +normal_battle_radius= +creep_battle_radius= +expansion_taken_radius= +ver_hero_base_value= +ver_hero_ultimate_level= +ver_hero_ultimate_value= +ver_creeps_attack_buildings_dist= +ver_mercs_night_buy= +ver_tower_check_radius= +ver_harass_tower_check_radius= +ver_strat_change_enemy_strength_min= +destroy_buildings_on_defeat= +attack_reform_length= +front_base_distance= +ver_heroes= +fixedcomputername= +green_creep_camp_strength_bonus= +orange_creep_camp_strength_bonus= +red_creep_camp_strength_bonus= +debugging= +strategy_change_threshold= +disable_surrender= +major_hero_skill_value= +minor_hero_skill_value= +rare_hero_skill_value= +ver_optimal_gold= +ver_flee_multiple1= +ver_flee_multiple1= +ver_flee_multiple2= +ver_flee_multiple3= +ver_low_aggression= +ver_high_aggression= -priority for reviving hero1= -priority for reviving hero2= -priority for reviving hero3= -priority increase for building needed buildings= -priority increase in time= +hero1_revive_prio= +hero2_revive_prio= +hero3_revive_prio= +prio_n_inc= +prio_t_inc= priority increase in quantity= -builds another farm at the same time when this near food used to food produced= -priority for farm building= -priority for peon building= -priority for expansion building= -priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= -priority for rebuilding an expansion= -number of peons to build when 1 mine is owned= -number of peons to build when 2 mines are owned= -number of peons to build when more mines are owned= -minimum number of peons when 1 mine is owned= -minimum number of peons when 2 mines are owned= -minimum number of peons when more than 1 mine is owned= -* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= -number of strategies with highest RPs that can be chosen when changing strategy= -priority added to all strategies having a building the computer already got as a key building= -priority added to all strategies having a building the computer already started to build as key building= -priority added to all strategies having both building the computer already got as key buildings= -value for 2 of a key buildings= -priority added to all strategies having a upgrade the computer already got as key upgrade in first level= -priority added to all strategies having a upgrade the computer already got as key upgrade in second level= -priority added to all strategies having a upgrade the computer already got as key upgrade in third level= -priority added to strategies havign the current profiles favorite unit as key units.= -this race is locked to this strategy number for testing.(-1 is unlocked)= -does the race use healing fountains ?= -does the race need manual loading of wisps in goldmines ?= -What is the unit to load ?= -What unit is it loaded in ?= -does the race have a towerrush ?= -if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= -the item is build towers is must?= -"how many items at a time , if can buy"= -what is the id of the races towers?= -"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= -what is the id of the tower upgrade1 (core)?= -what is the id of the tower upgrade2 (secondary)?= -"tower can move , like ELF tree or StarCraft human build fly?"= -what is the order of tower start move? -- like use root to loc move= -what is the unorder of tower end move?= -"tower is peon become , like ELF? AI will compensate more 2 peon"= -"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= -what is the building required to build towers ?= -how high (in percent) is the probability of doing a tower rush?= -does the race have a militia expansion ?= -how many racial heroes ?= -"a basic melee unit, only necessary when basic_melee is used"= -"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= -has the race a ghoul-like wood harvester/fighter unit ?= -do those ghouls go with the army on attacks ?= -can multiple racial workers work on the same building ?= -has the race no wood harvesters ?= -should the race leave injured units at home ?= -does the race expand with a mine building like undead ?= -does the race use the goblin shredder ?= -does the race have militia ?= -how far away from the town hall are the militia allowed ?= -what is the militia unit type id?= -what is the militia ability id ?= -what is the militia ability of the hall ?= -what is the unitstring/name of the militia ?= -what is the string of the unit that can be turned to militia ?= -shall the computer only use militias against larger threats ?= -can the race expand with an uprooted building that also helps fighting the creeps ?= -how high (in percent) is the probability of doing an ancient expansion when possible ?= -up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= -the unit id of the unit that should help in ancient expansion= -can expand with item building ?= -how high (in percent) is the probability of doing a item expansion ?= -buy expand item need hall level ?= -what is expand item name(from StandardUnits.txt) ?= -does the race sell ziggurats that are at no more needed expansions ?= -keep ziggurat if this near another building except a ziggurat is= -should the race build farms towards the front (as soon as the front is computed) ?= -limit the number of farms at the front to this number= -the first that many farms will be built at the mine= -the maximum distance between the mine and the expansion building= -Racial farms have healing properties= -the bonus strength value hero must have to be able to do the tower rush= -the bonus strength value hero must have to be able to do the ancient expansion= -priority for ghoul building= -smallest number of ghouls to build at all times= -maximum number of ghouls to build in low lumber situations= -" Used to create path units, must be different from race peon"= -Building id that can house peons/units and then shoot enemies.= -// Used to trigger melee defeat conditions on surrender.= -"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= +prio_q_inc= +farm_food2= +farm_prio= +peon_prio= +expa_prio= +expa_emergency_prio= +expa_rebuild_prio= +peon_1_mine_number= +peon_2_mines_number= +peon_mines_number= +min_peon_number_single_mine= +min_peon_number_double_mine= +min_peon_number_multi_mine= +strat_food_persistence= +relevant_strat_change_number= +kb_add1= +kb_add2= +kb_add3= +kb_add4= +ku_add1= +ku_add2= +ku_add3= +fav_unit_add= +debug_strategy= +race_use_fountain= +race_manual_loading= +race_manual_loading_wisp= +race_manual_loading_mine= +race_towerrush_available= +race_tower_item= +race_tower_item_must= +race_tower_item_quantity= +race_tower_id= +race_tower_id_replace= +race_tower_upgrade1= +race_tower_upgrade2= +race_tower_move= +race_tower_movestartstring= +race_tower_moveendstring= +race_tower_bypeon= +race_tower_peon= +race_towerrush_requirement= +race_towerrush_probability= +race_militia_expansion_available= +race_hero_number= +race_simple_melee= +race_advanced_melee= +race_has_ghouls= +race_ghouls_attack= +race_has_power_build= +race_no_wood_harvest= +race_ignore_injured= +race_uses_mine_expansion= +race_uses_shredder= +race_militia_available= +race_militia_max_distance= +race_militia_id= +race_militia_ability= +race_militia_hall_ability= +race_militia_unitstring= +race_militiaworker_unitstring= +use_militia_only_on_bigger_threats= +race_ancient_expansion_available= +race_ancient_expansion_probability= +race_ancient_expansion_strength= +race_ancient_expansion_help_id= +race_item_expansion_available= +race_item_expansion_probability= +race_item_sale_level= +race_item_expansion_item_id= +race_sell_ziggurats= +race_ziggurat_keep_distance= +race_build_farms_front= +race_farms_front_limit= +race_farms_at_mine= +race_max_expa_mine_distance= +race_has_moonwells= +race_towerrush_hero_rush_level= +race_ancient_expansion_hero_rush_level= +ghoul_prio= +race_min_ghouls= +race_max_ghouls= +groundid= +racial_burrow= +structid= +race_ancient_barracks_rush_chance= Strategy Function Name= Default Name= diff --git a/Languages/Swedish/StrategyManager.txt b/Languages/Swedish/StrategyManager.txt index 4fb861fbe..613672c20 100644 --- a/Languages/Swedish/StrategyManager.txt +++ b/Languages/Swedish/StrategyManager.txt @@ -52,193 +52,195 @@ title_strategy_editor= title_racial_builds_editor= title_settings_editor= -increases performance by checking stuff not so often= -how many computer players is needed tor the sleep multiplier to start increasing.= -how many computer players is needed tor the sleep multiplier to stop increasing.= -how much is the sleep multiplied when it's below the slm_start condition= -how much is the sleep multiplied when it's above the slm_end condition= -scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= -should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= -computers only repair buildings if they have more than this many workers= -computers only repair buildings when the town is under attack if they got more than this many workers= -Distance behind the army a zeppelin follows= -when is neutral heroes available in seconds /5= -how close to a shop do a unit have to be for buying?= -time in seconds the hero goes to a shop before it gives up if it haven't reached it= -time in seconds a hero tries to buy items at shop before giving up= -"every this * 5 seconds, the build array is reset"= -normalizing strategy priorities added from strengths with this value= -the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= -strategy when attacking enemy players= -"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= -Distance from ranged units enemy units can be targeted with focus fire= -Distance from melee units enemy units can be targeted with focus fire= -Units flee from battle if the health goes below his % value(0.25 is 25%)= -Units flee from battle if the health goes below this= -how near the units a statue used by undead should be in the fights= -units will stay within this radius from a hero that is using town portal= -computers give extra gold above this value to other computers on the same team in need of gold= -computers give extra lumber above this value to other computers on the same team in need of lumber= -how many towns is a computer allowed to have?= -Add the [AMAI] tag in front of name= -Add the current skill after the name= -how many different harass groups you can use= -"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= -the radius araound a mine computers check for creeps before expanding there= -how far away from ranged enemy units harassing units attack a inferior enemy unit= -how far away from melee enemy units harassing units attack a inferior enemy unit= -how far away from ranged enemy units harassing units turn and flee= -how far away from melee enemy units harassing units turn and flee= -computers use chat taunts= -a enemy army within this distance is counted as a full threat= -a enemy army outside this distance is counted as no threat= -how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= -"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= -accepted threat level increase starts at this time= -and ends at that time= -it starts with this value= -and ends with that value= -accepted threat level multiplier increases at that enemy number= -until that enemy number= -the multiplier starts for accepted threat level starts with this= -and ends with this= -Army uses TP to get home and defend if a threat is greater than this= -Army uses TP to get home and defend if a threat is greater than this= -Army won't use TP home if they are closer to base than this and a low threat level appears= -Army won't use TP home if they are closer to base than this and a high threat level appears= -how big the army need to be for use of TP to threatened town= -minimum threat level TP use is allowed on= -how many peons does a goblin shredder replace in lumber harvesting= -computers don't build any workers for lumber harvesting if they have more lumber than this= -computers build all needed workers for lumber harvesting if they have lumber lower than this= -does the version have neutral heroes ?= -how many neutral heroes ?= -can only heroes buy stuff ?= -what is the versions food limit ?= -units within that radius are considered belonging to the current battle= -"same as with normal_battle_radius, but for battles against creeps"= -how near a mine a enemy building must be to make amai recognize it as taken= -what is the base strength of a hero (the level number is added to get the actual strength) ?= -at what level do the heroes get their ultimates ?= -how much extra strength does the ultimate give to the hero ?= -how far away do creeps attack buildings ?= -can mercs be bought at night without waking up creeps ?= -check for towers in this radius around a target= -check for towers in this radius during harassing= -don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= -Should the buildings of the AI be destroyed on defeat or given to neutral player ?= -reform the attack group (getting new units) every that time on an attack (in seconds / 2)= -the distance of the front locations from the start location= -Does this version have heroes?= -Enable to force computers to have there fixed name instead of a profile name= -Bonus strength added to minor creep camps= -Bonus strength added to mediocre creep camps= -Bonus strength added to major creep camps= -Can turn on for debugging mode to display debug type messages= -New strategy priority must be larger than this multiple to the current strategy= -Set to true to stop amai from giving up early when it detects its going to lose= -Priority to choose the first line of hero skills= -Priority to choose the second line of hero skills= -Priority to choose the third line of hero skills= -priority added to heroes to be picked if they are favorites of the used profile= -The optimal number of peons that should be harvesting gold= -Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= -Multiplier to players strength at highest aggression to measure if amai allowed to flee= -Multipler to players strength at highest aggression to measure if amai will flee= -Aggression below this uses the lowest strength flee multiplier= -Agression above this uses the highest strength flee multiplier= +sleep_multiplier= +slm_start= +slm_end= +slm_start_mult= +slm_end_mult= +hero_radius= +use_linear_upkeep_saving= +repair_threshold= +repair_threshold_threatened= +max_follow_dist= +neutral_hero_time= +buy_distance= +buy_timeout_large= +buy_timeout_small= +rp_strat_normal= +build_array_reset_time= +strategy_tier_bonus= +attacking_strategy= +focus_fire_limit= +focus_fire_ranged_dist= +focus_fire_melee_dist= +flee_health_percentage= +flee_minimum_health= +statue_distance= +teleport_radius= +gold_exchange_level= +wood_exchange_level= +max_towns= +add_tag= +add_skill= +fav_hero_add= +max_harass_groups= +attacking_aggression= +expansion_radius= +harass_radius_attack_ranged= +harass_radius_attack_melee= +harass_radius_flee_ranged= +harass_radius_flee_melee= +chatting= +full_threat_distance= +no_threat_distance= +distance_threat_exponent= +distance_threat_mult= +atl_time_start= +atl_time_end= +atl_time_start_val= +atl_time_end_val= +atl_enemy_start= +atl_enemy_end= +atl_enemy_start_mult= +atl_enemy_end_mult= +teleport_low_threat= +teleport_high_threat= +teleport_low_threat_distance= +teleport_high_threat_distance= +teleport_army_min_strength= +teleport_min_threat= +shredder_peon_count= +minimum_peon_wood= +maximum_peon_wood= +ver_neutral_heroes_available= +ver_neutral_hero_number= +ver_only_heroes_buy= +ver_food_limit= +normal_battle_radius= +creep_battle_radius= +expansion_taken_radius= +ver_hero_base_value= +ver_hero_ultimate_level= +ver_hero_ultimate_value= +ver_creeps_attack_buildings_dist= +ver_mercs_night_buy= +ver_tower_check_radius= +ver_harass_tower_check_radius= +ver_strat_change_enemy_strength_min= +destroy_buildings_on_defeat= +attack_reform_length= +front_base_distance= +ver_heroes= +fixedcomputername= +green_creep_camp_strength_bonus= +orange_creep_camp_strength_bonus= +red_creep_camp_strength_bonus= +debugging= +strategy_change_threshold= +disable_surrender= +major_hero_skill_value= +minor_hero_skill_value= +rare_hero_skill_value= +ver_optimal_gold= +ver_flee_multiple1= +ver_flee_multiple1= +ver_flee_multiple2= +ver_flee_multiple3= +ver_low_aggression= +ver_high_aggression= -priority for reviving hero1= -priority for reviving hero2= -priority for reviving hero3= -priority increase for building needed buildings= -priority increase in time= +hero1_revive_prio= +hero2_revive_prio= +hero3_revive_prio= +prio_n_inc= +prio_t_inc= priority increase in quantity= -builds another farm at the same time when this near food used to food produced= -priority for farm building= -priority for peon building= -priority for expansion building= -priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= -priority for rebuilding an expansion= -number of peons to build when 1 mine is owned= -number of peons to build when 2 mines are owned= -number of peons to build when more mines are owned= -minimum number of peons when 1 mine is owned= -minimum number of peons when 2 mines are owned= -minimum number of peons when more than 1 mine is owned= -* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= -number of strategies with highest RPs that can be chosen when changing strategy= -priority added to all strategies having a building the computer already got as a key building= -priority added to all strategies having a building the computer already started to build as key building= -priority added to all strategies having both building the computer already got as key buildings= -value for 2 of a key buildings= -priority added to all strategies having a upgrade the computer already got as key upgrade in first level= -priority added to all strategies having a upgrade the computer already got as key upgrade in second level= -priority added to all strategies having a upgrade the computer already got as key upgrade in third level= -priority added to strategies havign the current profiles favorite unit as key units.= -this race is locked to this strategy number for testing.(-1 is unlocked)= -does the race use healing fountains ?= -does the race need manual loading of wisps in goldmines ?= -What is the unit to load ?= -What unit is it loaded in ?= -does the race have a towerrush ?= -if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= -the item is build towers is must?= -"how many items at a time , if can buy"= -what is the id of the races towers?= -"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= -what is the id of the tower upgrade1 (core)?= -what is the id of the tower upgrade2 (secondary)?= -"tower can move , like ELF tree or StarCraft human build fly?"= -what is the order of tower start move? -- like use root to loc move= -what is the unorder of tower end move?= -"tower is peon become , like ELF? AI will compensate more 2 peon"= -"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= -what is the building required to build towers ?= -how high (in percent) is the probability of doing a tower rush?= -does the race have a militia expansion ?= -how many racial heroes ?= -"a basic melee unit, only necessary when basic_melee is used"= -"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= -has the race a ghoul-like wood harvester/fighter unit ?= -do those ghouls go with the army on attacks ?= -can multiple racial workers work on the same building ?= -has the race no wood harvesters ?= -should the race leave injured units at home ?= -does the race expand with a mine building like undead ?= -does the race use the goblin shredder ?= -does the race have militia ?= -how far away from the town hall are the militia allowed ?= -what is the militia unit type id?= -what is the militia ability id ?= -what is the militia ability of the hall ?= -what is the unitstring/name of the militia ?= -what is the string of the unit that can be turned to militia ?= -shall the computer only use militias against larger threats ?= -can the race expand with an uprooted building that also helps fighting the creeps ?= -how high (in percent) is the probability of doing an ancient expansion when possible ?= -up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= -the unit id of the unit that should help in ancient expansion= -can expand with item building ?= -how high (in percent) is the probability of doing a item expansion ?= -buy expand item need hall level ?= -what is expand item name(from StandardUnits.txt) ?= -does the race sell ziggurats that are at no more needed expansions ?= -keep ziggurat if this near another building except a ziggurat is= -should the race build farms towards the front (as soon as the front is computed) ?= -limit the number of farms at the front to this number= -the first that many farms will be built at the mine= -the maximum distance between the mine and the expansion building= -Racial farms have healing properties= -the bonus strength value hero must have to be able to do the tower rush= -the bonus strength value hero must have to be able to do the ancient expansion= -priority for ghoul building= -smallest number of ghouls to build at all times= -maximum number of ghouls to build in low lumber situations= -" Used to create path units, must be different from race peon"= -Building id that can house peons/units and then shoot enemies.= -// Used to trigger melee defeat conditions on surrender.= -"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= +prio_q_inc= +farm_food2= +farm_prio= +peon_prio= +expa_prio= +expa_emergency_prio= +expa_rebuild_prio= +peon_1_mine_number= +peon_2_mines_number= +peon_mines_number= +min_peon_number_single_mine= +min_peon_number_double_mine= +min_peon_number_multi_mine= +strat_food_persistence= +relevant_strat_change_number= +kb_add1= +kb_add2= +kb_add3= +kb_add4= +ku_add1= +ku_add2= +ku_add3= +fav_unit_add= +debug_strategy= +race_use_fountain= +race_manual_loading= +race_manual_loading_wisp= +race_manual_loading_mine= +race_towerrush_available= +race_tower_item= +race_tower_item_must= +race_tower_item_quantity= +race_tower_id= +race_tower_id_replace= +race_tower_upgrade1= +race_tower_upgrade2= +race_tower_move= +race_tower_movestartstring= +race_tower_moveendstring= +race_tower_bypeon= +race_tower_peon= +race_towerrush_requirement= +race_towerrush_probability= +race_militia_expansion_available= +race_hero_number= +race_simple_melee= +race_advanced_melee= +race_has_ghouls= +race_ghouls_attack= +race_has_power_build= +race_no_wood_harvest= +race_ignore_injured= +race_uses_mine_expansion= +race_uses_shredder= +race_militia_available= +race_militia_max_distance= +race_militia_id= +race_militia_ability= +race_militia_hall_ability= +race_militia_unitstring= +race_militiaworker_unitstring= +use_militia_only_on_bigger_threats= +race_ancient_expansion_available= +race_ancient_expansion_probability= +race_ancient_expansion_strength= +race_ancient_expansion_help_id= +race_item_expansion_available= +race_item_expansion_probability= +race_item_sale_level= +race_item_expansion_item_id= +race_sell_ziggurats= +race_ziggurat_keep_distance= +race_build_farms_front= +race_farms_front_limit= +race_farms_at_mine= +race_max_expa_mine_distance= +race_has_moonwells= +race_towerrush_hero_rush_level= +race_ancient_expansion_hero_rush_level= +ghoul_prio= +race_min_ghouls= +race_max_ghouls= +groundid= +racial_burrow= +structid= +race_ancient_barracks_rush_chance= Strategy Function Name= Default Name= diff --git a/Templates/StrategyManager.txt b/Templates/StrategyManager.txt index 4fb861fbe..613672c20 100644 --- a/Templates/StrategyManager.txt +++ b/Templates/StrategyManager.txt @@ -52,193 +52,195 @@ title_strategy_editor= title_racial_builds_editor= title_settings_editor= -increases performance by checking stuff not so often= -how many computer players is needed tor the sleep multiplier to start increasing.= -how many computer players is needed tor the sleep multiplier to stop increasing.= -how much is the sleep multiplied when it's below the slm_start condition= -how much is the sleep multiplied when it's above the slm_end condition= -scanning this small area around hero to detect if the hero gets surrounded by enemy or is in danger of becoming that so it should move= -should the computers save the upkeep threshold gold over the time above or save it all at once when it get's to the upkeep border?= -computers only repair buildings if they have more than this many workers= -computers only repair buildings when the town is under attack if they got more than this many workers= -Distance behind the army a zeppelin follows= -when is neutral heroes available in seconds /5= -how close to a shop do a unit have to be for buying?= -time in seconds the hero goes to a shop before it gives up if it haven't reached it= -time in seconds a hero tries to buy items at shop before giving up= -"every this * 5 seconds, the build array is reset"= -normalizing strategy priorities added from strengths with this value= -the priority bonus added to a strategy if the computer is in the same tier as specified for the strategy= -strategy when attacking enemy players= -"if a enemy heros hp fall below the computers combined strength of ranged attackers in a battle * this, they will focus fire on the hero"= -Distance from ranged units enemy units can be targeted with focus fire= -Distance from melee units enemy units can be targeted with focus fire= -Units flee from battle if the health goes below his % value(0.25 is 25%)= -Units flee from battle if the health goes below this= -how near the units a statue used by undead should be in the fights= -units will stay within this radius from a hero that is using town portal= -computers give extra gold above this value to other computers on the same team in need of gold= -computers give extra lumber above this value to other computers on the same team in need of lumber= -how many towns is a computer allowed to have?= -Add the [AMAI] tag in front of name= -Add the current skill after the name= -how many different harass groups you can use= -"the base agression value for all computers, higher value and they will play more agressive. Recomended -5 to 5"= -the radius araound a mine computers check for creeps before expanding there= -how far away from ranged enemy units harassing units attack a inferior enemy unit= -how far away from melee enemy units harassing units attack a inferior enemy unit= -how far away from ranged enemy units harassing units turn and flee= -how far away from melee enemy units harassing units turn and flee= -computers use chat taunts= -a enemy army within this distance is counted as a full threat= -a enemy army outside this distance is counted as no threat= -how fast the threat increases as the enemy army gets from the no_threat_distance to the full_threat_distance= -"how much the threat vlaue goes up on a town when a enemy army aproaches, higher value means higher threat to town"= -accepted threat level increase starts at this time= -and ends at that time= -it starts with this value= -and ends with that value= -accepted threat level multiplier increases at that enemy number= -until that enemy number= -the multiplier starts for accepted threat level starts with this= -and ends with this= -Army uses TP to get home and defend if a threat is greater than this= -Army uses TP to get home and defend if a threat is greater than this= -Army won't use TP home if they are closer to base than this and a low threat level appears= -Army won't use TP home if they are closer to base than this and a high threat level appears= -how big the army need to be for use of TP to threatened town= -minimum threat level TP use is allowed on= -how many peons does a goblin shredder replace in lumber harvesting= -computers don't build any workers for lumber harvesting if they have more lumber than this= -computers build all needed workers for lumber harvesting if they have lumber lower than this= -does the version have neutral heroes ?= -how many neutral heroes ?= -can only heroes buy stuff ?= -what is the versions food limit ?= -units within that radius are considered belonging to the current battle= -"same as with normal_battle_radius, but for battles against creeps"= -how near a mine a enemy building must be to make amai recognize it as taken= -what is the base strength of a hero (the level number is added to get the actual strength) ?= -at what level do the heroes get their ultimates ?= -how much extra strength does the ultimate give to the hero ?= -how far away do creeps attack buildings ?= -can mercs be bought at night without waking up creeps ?= -check for towers in this radius around a target= -check for towers in this radius during harassing= -don't allow strategy change unless the maximum strength of all enemy players in the game is above this.= -Should the buildings of the AI be destroyed on defeat or given to neutral player ?= -reform the attack group (getting new units) every that time on an attack (in seconds / 2)= -the distance of the front locations from the start location= -Does this version have heroes?= -Enable to force computers to have there fixed name instead of a profile name= -Bonus strength added to minor creep camps= -Bonus strength added to mediocre creep camps= -Bonus strength added to major creep camps= -Can turn on for debugging mode to display debug type messages= -New strategy priority must be larger than this multiple to the current strategy= -Set to true to stop amai from giving up early when it detects its going to lose= -Priority to choose the first line of hero skills= -Priority to choose the second line of hero skills= -Priority to choose the third line of hero skills= -priority added to heroes to be picked if they are favorites of the used profile= -The optimal number of peons that should be harvesting gold= -Multiplier to players strength at lowest aggression to measure if amai is allowed to flee= -Multiplier to players strength at highest aggression to measure if amai allowed to flee= -Multipler to players strength at highest aggression to measure if amai will flee= -Aggression below this uses the lowest strength flee multiplier= -Agression above this uses the highest strength flee multiplier= +sleep_multiplier= +slm_start= +slm_end= +slm_start_mult= +slm_end_mult= +hero_radius= +use_linear_upkeep_saving= +repair_threshold= +repair_threshold_threatened= +max_follow_dist= +neutral_hero_time= +buy_distance= +buy_timeout_large= +buy_timeout_small= +rp_strat_normal= +build_array_reset_time= +strategy_tier_bonus= +attacking_strategy= +focus_fire_limit= +focus_fire_ranged_dist= +focus_fire_melee_dist= +flee_health_percentage= +flee_minimum_health= +statue_distance= +teleport_radius= +gold_exchange_level= +wood_exchange_level= +max_towns= +add_tag= +add_skill= +fav_hero_add= +max_harass_groups= +attacking_aggression= +expansion_radius= +harass_radius_attack_ranged= +harass_radius_attack_melee= +harass_radius_flee_ranged= +harass_radius_flee_melee= +chatting= +full_threat_distance= +no_threat_distance= +distance_threat_exponent= +distance_threat_mult= +atl_time_start= +atl_time_end= +atl_time_start_val= +atl_time_end_val= +atl_enemy_start= +atl_enemy_end= +atl_enemy_start_mult= +atl_enemy_end_mult= +teleport_low_threat= +teleport_high_threat= +teleport_low_threat_distance= +teleport_high_threat_distance= +teleport_army_min_strength= +teleport_min_threat= +shredder_peon_count= +minimum_peon_wood= +maximum_peon_wood= +ver_neutral_heroes_available= +ver_neutral_hero_number= +ver_only_heroes_buy= +ver_food_limit= +normal_battle_radius= +creep_battle_radius= +expansion_taken_radius= +ver_hero_base_value= +ver_hero_ultimate_level= +ver_hero_ultimate_value= +ver_creeps_attack_buildings_dist= +ver_mercs_night_buy= +ver_tower_check_radius= +ver_harass_tower_check_radius= +ver_strat_change_enemy_strength_min= +destroy_buildings_on_defeat= +attack_reform_length= +front_base_distance= +ver_heroes= +fixedcomputername= +green_creep_camp_strength_bonus= +orange_creep_camp_strength_bonus= +red_creep_camp_strength_bonus= +debugging= +strategy_change_threshold= +disable_surrender= +major_hero_skill_value= +minor_hero_skill_value= +rare_hero_skill_value= +ver_optimal_gold= +ver_flee_multiple1= +ver_flee_multiple1= +ver_flee_multiple2= +ver_flee_multiple3= +ver_low_aggression= +ver_high_aggression= -priority for reviving hero1= -priority for reviving hero2= -priority for reviving hero3= -priority increase for building needed buildings= -priority increase in time= +hero1_revive_prio= +hero2_revive_prio= +hero3_revive_prio= +prio_n_inc= +prio_t_inc= priority increase in quantity= -builds another farm at the same time when this near food used to food produced= -priority for farm building= -priority for peon building= -priority for expansion building= -priority for making expansion when it's an emergensy (current mine/mines + own resources are about to be depleted)= -priority for rebuilding an expansion= -number of peons to build when 1 mine is owned= -number of peons to build when 2 mines are owned= -number of peons to build when more mines are owned= -minimum number of peons when 1 mine is owned= -minimum number of peons when 2 mines are owned= -minimum number of peons when more than 1 mine is owned= -* current food use added to priority for current strategy (prevents computers from changing styrategy when having large army)= -number of strategies with highest RPs that can be chosen when changing strategy= -priority added to all strategies having a building the computer already got as a key building= -priority added to all strategies having a building the computer already started to build as key building= -priority added to all strategies having both building the computer already got as key buildings= -value for 2 of a key buildings= -priority added to all strategies having a upgrade the computer already got as key upgrade in first level= -priority added to all strategies having a upgrade the computer already got as key upgrade in second level= -priority added to all strategies having a upgrade the computer already got as key upgrade in third level= -priority added to strategies havign the current profiles favorite unit as key units.= -this race is locked to this strategy number for testing.(-1 is unlocked)= -does the race use healing fountains ?= -does the race need manual loading of wisps in goldmines ?= -What is the unit to load ?= -What unit is it loaded in ?= -does the race have a towerrush ?= -if the race_tower_id need Blig land (AbilityId 'Abgl') or shop can buy IVORY_TOWER= -the item is build towers is must?= -"how many items at a time , if can buy"= -what is the id of the races towers?= -"if the race_tower_id has Blig land (AbilityId 'Abgl'), cannot create Blig land , and this build should can replace shop"= -what is the id of the tower upgrade1 (core)?= -what is the id of the tower upgrade2 (secondary)?= -"tower can move , like ELF tree or StarCraft human build fly?"= -what is the order of tower start move? -- like use root to loc move= -what is the unorder of tower end move?= -"tower is peon become , like ELF? AI will compensate more 2 peon"= -"the peons go to build towers , how much need compensation peons , usually compensation be equal to go build peons , if build like UD , just summon ,can set less"= -what is the building required to build towers ?= -how high (in percent) is the probability of doing a tower rush?= -does the race have a militia expansion ?= -how many racial heroes ?= -"a basic melee unit, only necessary when basic_melee is used"= -"an advanced melee unit to replace the basic one, only necessary when basic_melee is used"= -has the race a ghoul-like wood harvester/fighter unit ?= -do those ghouls go with the army on attacks ?= -can multiple racial workers work on the same building ?= -has the race no wood harvesters ?= -should the race leave injured units at home ?= -does the race expand with a mine building like undead ?= -does the race use the goblin shredder ?= -does the race have militia ?= -how far away from the town hall are the militia allowed ?= -what is the militia unit type id?= -what is the militia ability id ?= -what is the militia ability of the hall ?= -what is the unitstring/name of the militia ?= -what is the string of the unit that can be turned to militia ?= -shall the computer only use militias against larger threats ?= -can the race expand with an uprooted building that also helps fighting the creeps ?= -how high (in percent) is the probability of doing an ancient expansion when possible ?= -up to how much expansion strength is an ancient expansion allowed (DEPRECATED) ?= -the unit id of the unit that should help in ancient expansion= -can expand with item building ?= -how high (in percent) is the probability of doing a item expansion ?= -buy expand item need hall level ?= -what is expand item name(from StandardUnits.txt) ?= -does the race sell ziggurats that are at no more needed expansions ?= -keep ziggurat if this near another building except a ziggurat is= -should the race build farms towards the front (as soon as the front is computed) ?= -limit the number of farms at the front to this number= -the first that many farms will be built at the mine= -the maximum distance between the mine and the expansion building= -Racial farms have healing properties= -the bonus strength value hero must have to be able to do the tower rush= -the bonus strength value hero must have to be able to do the ancient expansion= -priority for ghoul building= -smallest number of ghouls to build at all times= -maximum number of ghouls to build in low lumber situations= -" Used to create path units, must be different from race peon"= -Building id that can house peons/units and then shoot enemies.= -// Used to trigger melee defeat conditions on surrender.= -"// If above 0 will set the chance to attack first nearby creep camp using an ancient building, uses the rushcreep flag in standardunits if available for race"= +prio_q_inc= +farm_food2= +farm_prio= +peon_prio= +expa_prio= +expa_emergency_prio= +expa_rebuild_prio= +peon_1_mine_number= +peon_2_mines_number= +peon_mines_number= +min_peon_number_single_mine= +min_peon_number_double_mine= +min_peon_number_multi_mine= +strat_food_persistence= +relevant_strat_change_number= +kb_add1= +kb_add2= +kb_add3= +kb_add4= +ku_add1= +ku_add2= +ku_add3= +fav_unit_add= +debug_strategy= +race_use_fountain= +race_manual_loading= +race_manual_loading_wisp= +race_manual_loading_mine= +race_towerrush_available= +race_tower_item= +race_tower_item_must= +race_tower_item_quantity= +race_tower_id= +race_tower_id_replace= +race_tower_upgrade1= +race_tower_upgrade2= +race_tower_move= +race_tower_movestartstring= +race_tower_moveendstring= +race_tower_bypeon= +race_tower_peon= +race_towerrush_requirement= +race_towerrush_probability= +race_militia_expansion_available= +race_hero_number= +race_simple_melee= +race_advanced_melee= +race_has_ghouls= +race_ghouls_attack= +race_has_power_build= +race_no_wood_harvest= +race_ignore_injured= +race_uses_mine_expansion= +race_uses_shredder= +race_militia_available= +race_militia_max_distance= +race_militia_id= +race_militia_ability= +race_militia_hall_ability= +race_militia_unitstring= +race_militiaworker_unitstring= +use_militia_only_on_bigger_threats= +race_ancient_expansion_available= +race_ancient_expansion_probability= +race_ancient_expansion_strength= +race_ancient_expansion_help_id= +race_item_expansion_available= +race_item_expansion_probability= +race_item_sale_level= +race_item_expansion_item_id= +race_sell_ziggurats= +race_ziggurat_keep_distance= +race_build_farms_front= +race_farms_front_limit= +race_farms_at_mine= +race_max_expa_mine_distance= +race_has_moonwells= +race_towerrush_hero_rush_level= +race_ancient_expansion_hero_rush_level= +ghoul_prio= +race_min_ghouls= +race_max_ghouls= +groundid= +racial_burrow= +structid= +race_ancient_barracks_rush_chance= Strategy Function Name= Default Name= From 551c5fab8c2a87b879e7f90e5161cd76d400b237 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 9 Feb 2025 18:55:46 +0800 Subject: [PATCH 12/42] Add files via upload --- AMAIStrategyManager.pl | 158 ++++++++++++++++++++--------------------- 1 file changed, 79 insertions(+), 79 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index a4dff5f7f..b3412f2a7 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -5,6 +5,7 @@ use Tk::TextUndo; use Tk::Table; use Tk::NoteBook; +use open ':std', ':encoding(UTF-8)'; BEGIN{ if($^O eq 'MSWin32'){ @@ -21,24 +22,23 @@ BEGIN my %lang_data_cache; my $lang_code_file_path = 'Manager_language.txt'; -open(my $fh_lang_code, '<', $lang_code_file_path) or do { - open(my $fh_new, '>', $lang_code_file_path); - print $fh_new "English\n"; - close($fh_new); +open(LANGCODE, "$lang_code_file_path") or do { + open(NEWLANGCODE, ">$lang_code_file_path"); + print NEWLANGCODE "English\n"; + close(NEWLANGCODE); }; -my $lang_code = <$fh_lang_code>; +my $lang_code = ; chomp($lang_code); -close($fh_lang_code); +close(LANGCODE); my $lang_file = "Languages\\$lang_code\\StrategyManager.txt"; my $back_lang_file = "Languages\\English\\StrategyManager.txt"; my %languages; - sub load_language { my ($lang_file) = @_; return $lang_data_cache{$lang_file} if exists $lang_data_cache{$lang_file}; - open my $fh, '<:encoding(UTF-8)', $lang_file or die "Cannot open language file '$lang_file': $!"; + open (LANG, $lang_file) or die "Cannot open file <$lang_file>"; my %keylang; - while (<$fh>) { + while () { chomp; next if /^\s*(?:#.*)?$/; my ($key, $value) = split '=', $_, 2; @@ -50,7 +50,7 @@ sub load_language { # $value =~ s/^\s+|\s+$//g; $keylang{$key} = $value; } - close $fh; + close LANG; $lang_data_cache{$lang_file} = \%keylang; return \%keylang; } @@ -211,7 +211,7 @@ sub confirm_box { }, -width => 16)->pack; -open(VERFILE, "Versions.txt") or do { get_translation('err_file_not_found', "") }; +open(VERFILE, "Versions.txt") or do { confirm_box(get_translation('err_file_not_found', "")) }; my @vers = ; close(VERFILE); chomp foreach (@vers); @@ -294,7 +294,7 @@ sub confirm_box { $langopt = $lframe->Optionmenu( -command => sub { my ($choice) = @_; - open(SETLANG, ">Manager_language.txt") or do { get_translation('err_file_not_writing', "") }; + open(SETLANG, ">Manager_language.txt") or do { confirm_box(get_translation('err_file_not_writing', "")) }; print SETLANG $choice; close(SETLANG); exec($^X, $0, @ARGV); @@ -314,7 +314,7 @@ sub confirm_box { MainLoop; sub GetLanguages { - open(LANG, "Languages.txt") or do { get_translation('err_file_not_found', "") }; + open(LANG, "Languages.txt") or do { confirm_box(get_translation('err_file_not_found', "")) }; my @languages = ; close(LANG); shift @languages; @@ -328,7 +328,7 @@ sub GetLanguages { sub GetRaces { my $ver = shift; - open(RACEFILE, "$ver\\Races.txt") or do { get_translation('err_file_not_found', "<$ver\\Races.txt>") }; + open(RACEFILE, "$ver\\Races.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\Races.txt>")) }; my @races = ; close(RACEFILE); chomp foreach (@races); @@ -352,7 +352,7 @@ sub GetArrayIndex { sub SetRaceOption { my ($ver, $race, $opt, $val) = @_; - open(SETFILE, "$ver\\$race\\Settings.txt") or do { get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>") }; + open(SETFILE, "$ver\\$race\\Settings.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>")) }; my @setfile = (); my $optionexists = 0; while() { @@ -366,14 +366,14 @@ sub SetRaceOption { } push @setfile, "$opt\t$val\t\n" if ($optionexists == 0); close(SETFILE); - open(SETFILE, ">$ver\\$race\\Settings.txt") or do { get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>") }; + open(SETFILE, ">$ver\\$race\\Settings.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>")) }; print SETFILE @setfile; close(SETFILE); } sub SetVerOption { my ($ver, $opt, $val) = @_; - open(SETFILE, "$ver\\GlobalSettings.txt") or do { get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>") }; + open(SETFILE, "$ver\\GlobalSettings.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>")) }; my @setfile = (); my $optionexists = 0; while() { @@ -387,7 +387,7 @@ sub SetVerOption { } push @setfile, "$opt\t$val\t\n" if ($optionexists == 0); close(SETFILE); - open(SETFILE, ">$ver\\GlobalSettings.txt") or do { get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>") }; + open(SETFILE, ">$ver\\GlobalSettings.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>")) }; print SETFILE @setfile; close(SETFILE); } @@ -396,7 +396,7 @@ sub GetStratList { my $ver = shift; my $race = shift; return () unless ($ver and $race); - open(STRATFILE, "$ver\\$race\\Strategy.txt") or do { get_translation('err_file_not_found', "<$ver\\$race\\Strategy.txt>") }; + open(STRATFILE, "$ver\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\Strategy.txt>")) }; my @stratlist = (); ; while () { @@ -419,7 +419,7 @@ sub UpdateStratList { sub GetProfileList { my $ver = shift; return () unless ($ver); - open(PROFILEFILE, "$ver\\Profiles.txt") or do { get_translation('err_file_not_found', "<$ver\\Profiles.txt>") }; + open(PROFILEFILE, "$ver\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\Profiles.txt>")) }; my @profilelist = (); ; while () { @@ -443,7 +443,7 @@ sub RemoveStrat { my $response = $main->messageBox(-message => get_translation('message_remove_strategy'), -title => get_translation('title_really'), -type => 'YesNo', -default => 'no'); return if ($response eq 'no' or $response eq 'No'); my $stratname = @$strat[0]; - open(STRATFILE, "$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>") }; + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>")) }; my @stratfile = (); while () { unless (/^$stratname\t/) { @@ -451,23 +451,23 @@ sub RemoveStrat { } } close(STRATFILE); - open(STRATFILE, ">$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>") }; + open(STRATFILE, ">$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; print STRATFILE @stratfile; close(STRATFILE); @stratfile = (); - open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>") }; + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>")) }; my @aifile = (); while () { if (/\bfunction\s*init_strategy_$stratname\b/) { - while (( or do { get_translation('err_strategy_not_complete') }) !~ /endfunction/) {} - while (( or do { get_translation('err_strategy_not_complete') }) !~ /endfunction/) {} + while (( or do { confirm_box(get_translation('err_strategy_not_complete')) }) !~ /endfunction/) {} + while (( or do { confirm_box(get_translation('err_strategy_not_complete')) }) !~ /endfunction/) {} } else { push(@aifile, $_); } } close(AIFILE); - open(AIFILE, ">$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>") }; + open(AIFILE, ">$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>")) }; print AIFILE @aifile; close(AIFILE); } @@ -478,7 +478,7 @@ sub RemoveProfile { my $response = $main->messageBox(-message => get_translation('message_remove_profile'), -title => get_translation('title_really'), -type => 'YesNo', -default => 'no'); return if ($response eq 'no' or $response eq 'No'); my $profilename = @$profile[0]; - open(PROFILEFILE, "$version\\Profiles.txt") or do { get_translation('err_file_not_found', "<$version\\Profiles.txt>") }; + open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\Profiles.txt>")) }; my @profilefile = (); while () { unless (/^$profilename\t/) { @@ -486,7 +486,7 @@ sub RemoveProfile { } } close(PROFILEFILE); - open(PROFILEFILE, ">$version\\Profiles.txt") or do { get_translation('err_file_not_writing', "<$version\\Profiles.txt>") }; + open(PROFILEFILE, ">$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; print PROFILEFILE @profilefile; close(PROFILEFILE); } @@ -511,18 +511,18 @@ sub CopyProfile { sub ExtractStratSub { my ($filename, $version, $race, $stratname) = @_; - open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>") }; - open(STRATFILE, "$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>") }; - open(TARGETFILE, ">$filename") or do { get_translation('err_file_not_found', "<$filename>") }; + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>")) }; + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>")) }; + open(TARGETFILE, ">$filename") or do { confirm_box(get_translation('err_file_not_found', "<$filename>")) }; print TARGETFILE "#AMAI 2.0 Strategy\n"; my $line = ; - while (($line = ( or do { get_translation('err_strategy_not_found_s') })) !~ /^$stratname\t/) {} + while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_s')) })) !~ /^$stratname\t/) {} print TARGETFILE $line; - while (($line = ( or do { get_translation('err_strategy_not_found_b') })) !~ /\bfunction\s*init_strategy_$stratname\b/) {} + while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_b')) })) !~ /\bfunction\s*init_strategy_$stratname\b/) {} print TARGETFILE $line; - while (($line = ( or do { get_translation('err_strategy_not_complete') })) !~ /endfunction/) {print TARGETFILE $line;} + while (($line = ( or do { confirm_box(get_translation('err_strategy_not_complete')) })) !~ /endfunction/) {print TARGETFILE $line;} print TARGETFILE $line; - while (($line = ( or do { get_translation('err_strategy_not_complete') })) !~ /endfunction/) {print TARGETFILE $line;} + while (($line = ( or do { confirm_box(get_translation('err_strategy_not_complete')) })) !~ /endfunction/) {print TARGETFILE $line;} print TARGETFILE $line; close(TARGETFILE); close(AIFILE); @@ -544,11 +544,11 @@ sub ExtractStrat { sub ExtractProfileSub { my ($filename, $version, $profilename) = @_; - open(PROFILEFILE, "$version\\Profiles.txt") or do { get_translation('err_file_not_found', "<$version\\Profiles.txt>") }; - open(TARGETFILE, ">$filename") or do { get_translation('err_file_not_found', "<$filename>") }; + open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\Profiles.txt>")) }; + open(TARGETFILE, ">$filename") or do { confirm_box(get_translation('err_file_not_found', "<$filename>")) }; print TARGETFILE "#AMAI 2.0 Profile\n"; my $line = ; - while (($line = ( or do { get_translation('err_profile_not_found_p') })) !~ /^$profilename\t/) {} + while (($line = ( or do { confirm_box(get_translation('err_profile_not_found_p')) })) !~ /^$profilename\t/) {} print TARGETFILE $line; close(TARGETFILE); close(PROFILEFILE); @@ -570,8 +570,8 @@ sub ExtractProfile { sub InsertStratSub { my ($filename, $version, $race) = @_; my $stratlist = join ',', GetStratList($version, $race); - open(SOURCE, $filename) or do { get_translation('err_file_not_found', "<$filename>") }; - open(AIFILE, ">>$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>") }; + open(SOURCE, $filename) or do { confirm_box(get_translation('err_file_not_found', "<$filename>")) }; + open(AIFILE, ">>$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>")) }; open(STRATFILE, ">>$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>")) }; my $line = ; if ($line !~ /#AMAI 2.0 Strategy/) {die get_translation('err_not_file_s');} @@ -611,8 +611,8 @@ sub InsertStrat { sub InsertProfileSub { my ($filename, $version) = @_; my $profilelist = join ',', GetProfileList($version); - open(SOURCE, $filename) or do { get_translation('err_file_not_found', "<$filename>") }; - open(PROFILEFILE, ">>$version\\Profiles.txt") or do { get_translation('err_file_not_found', "<$version\\Profiles.txt>") }; + open(SOURCE, $filename) or do { confirm_box(get_translation('err_file_not_found', "<$filename>")) }; + open(PROFILEFILE, ">>$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\Profiles.txt>")) }; my $line = ; if ($line !~ /#AMAI 2.0 Profile/) {die get_translation('err_not_file_p') }; $line = ; @@ -650,7 +650,7 @@ sub EditStrat { my $rframe = $edit->Frame->pack(-side => 'right'); my $bframe = $rframe->Frame->pack(-side => 'right'); my $strattable = $rframe->Table(-rows => 37)->pack(-side => 'left'); - open(TIERFILE, "$ver\\$race\\Tiers.txt") or do { get_translation('err_file_not_found', "<$ver\\$race\\Tiers.txt>") }; + open(TIERFILE, "$ver\\$race\\Tiers.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\Tiers.txt>")) }; my @tiers = ; my $tiernum = @tiers; close(TIERFILE); @@ -695,7 +695,7 @@ sub EditProfile { sub GetVarList { my ($ver, $var, $race) = @_; - open(VARFILE, "VarDefs.ini") or do { get_translation('err_file_not_found', "") }; + open(VARFILE, "VarDefs.ini") or do { confirm_box(get_translation('err_file_not_found', "")) }; ; while() { chomp; @@ -703,7 +703,7 @@ sub GetVarList { my $fn = $1; $fn =~ s/\$RACE\$/$race/g; close(VARFILE); - open(VARTABLE, "$ver\\$fn") or do { get_translation('err_file_not_found', "<$ver\\$fn>") }; + open(VARTABLE, "$ver\\$fn") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$fn>")) }; my @vt = (); while () { /([^\t\n]*)(\t|\n|$)/; @@ -764,7 +764,7 @@ sub ExtendOptList { sub GetOptList { my $ver = shift; - open(OPTFILE, "Optionlist.ini") or do { get_translation('err_file_not_found', "") }; + open(OPTFILE, "Optionlist.ini") or do { confirm_box(get_translation('err_file_not_found', "")) }; my %optlist = (); my @optfile = ; close(OPTFILE); @@ -794,7 +794,7 @@ sub GetUnitLists { my @buildinglist = (0); my @upgradelist = (0); my @herolist = (0); - open(UNITFILE, "$version\\StandardUnits.txt") or do { get_translation('err_file_not_found', "<$version\\StandardUnits.txt>") }; + open(UNITFILE, "$version\\StandardUnits.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\StandardUnits.txt>")) }; while() { my @line = split("\t", $_); push @buildinglist, $line[0] if ($line[2] =~ /$race/ and $line[4] eq "BUILDING"); @@ -816,7 +816,7 @@ sub GetProfileUnitLists { $unitlists{$_} = \@unitlist; $herolists{$_} = \@herolist; } - open(UNITFILE, "$version\\StandardUnits.txt") or do { get_translation('err_file_not_found', "<$version\\StandardUnits.txt>") }; + open(UNITFILE, "$version\\StandardUnits.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\StandardUnits.txt>")) }; while() { my @line = split("\t", $_); foreach (@races) { @@ -837,7 +837,7 @@ sub FillTable { my @buildinglist = @{$buildinglistref}; my @upgradelist = @{$upgradelistref}; my @herolist = @{$herolistref}; - open(STRATFILE, "$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>") }; + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>")) }; my $line = ; chomp($line); my @opt = split("\t", $line); @@ -855,7 +855,7 @@ sub FillTable { $strattable->put($i, 0, $l); $i++; } - while (($line = ( or do { get_translation('err_strategy_not_found_s') })) !~ /^$strat\t/) {} + while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_s')) })) !~ /^$strat\t/) {} chomp($line); my @optval = split("\t", $line); $i = 0; @@ -900,7 +900,7 @@ sub FillProfileTable { my ($unitlistref, $herolistref) = GetProfileUnitLists($version, GetRaces($version), 'NEUTRAL'); my %unitlists = %{$unitlistref}; my %herolists = %{$herolistref}; - open(PROFILEFILE, "$version\\Profiles.txt") or do { get_translation('err_file_not_found', "<$version\\Profiles.txt>") }; + open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\Profiles.txt>")) }; my $line = ; chomp($line); my @opt = split("\t", $line); @@ -911,7 +911,7 @@ sub FillProfileTable { $profiletable->put($i, 0, $l); $i++; } - while (($line = ( or do { get_translation('err_profile_not_found_p') })) !~ /^$profile\t/) {} + while (($line = ( or do { confirm_box(get_translation('err_profile_not_found_p')) })) !~ /^$profile\t/) {} chomp($line); my @optval = split("\t", $line); $i = 0; @@ -960,24 +960,24 @@ sub AssembleTable { sub FillTexts { my ($inittext, $buildtexttierref, $version, $race, $stratname, @optarray) = @_; my @buildtexttier = @{$buildtexttierref}; - open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>") }; + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>")) }; my $line; - while (( or do { get_translation('err_strategy_not_found_ai') }) !~ /\bfunction\s*init_strategy_$stratname\b/) {} - while (($line = ( or do { get_translation('err_strategy_not_found_ai') })) !~ /endfunction/) {$inittext->insert('end', $line);} - while (( or do { get_translation('err_strategy_not_found_ai') }) !~ /\bfunction\s*build_sequence_$stratname\b/) {} - while (( or do { get_translation('err_strategy_not_found_ai') }) !~ /if.*tier.*==.*$#buildtexttier/) {} + while (( or do { confirm_box(get_translation('err_strategy_not_found_ai')) }) !~ /\bfunction\s*init_strategy_$stratname\b/) {} + while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_ai')) })) !~ /endfunction/) {$inittext->insert('end', $line);} + while (( or do { confirm_box(get_translation('err_strategy_not_found_ai')) }) !~ /\bfunction\s*build_sequence_$stratname\b/) {} + while (( or do { confirm_box(get_translation('err_strategy_not_found_ai')) }) !~ /if.*tier.*==.*$#buildtexttier/) {} for(my $i=$#buildtexttier;$i>2;$i--) { my $j = $i-1; - while (($line = ( or do { get_translation('err_strategy_not_found_ai') })) !~ /elseif.*tier.*==.*$j/) {$buildtexttier[$i]->insert('end', $line);} + while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_ai')) })) !~ /elseif.*tier.*==.*$j/) {$buildtexttier[$i]->insert('end', $line);} } my $iflevel = 0; - while ((($line = ( or do { get_translation('err_strategy_not_found_ai') })) !~ /\belse\b/) or $iflevel != 0) { + while ((($line = ( or do { confirm_box(get_translation('err_strategy_not_found_ai')) })) !~ /\belse\b/) or $iflevel != 0) { $buildtexttier[2]->insert('end', $line); $iflevel++ if ($line =~ /\bif/); $iflevel-- if ($line =~ /endif/); } $iflevel = 0; - while ((($line = ( or do { get_translation('err_strategy_not_found_ai') })) !~ /endif/) or $iflevel != 0) { + while ((($line = ( or do { confirm_box(get_translation('err_strategy_not_found_ai')) })) !~ /endif/) or $iflevel != 0) { $buildtexttier[1]->insert('end', $line); $iflevel++ if ($line =~ /\bif/); $iflevel-- if ($line =~ /endif/); @@ -989,7 +989,7 @@ sub SaveStrat { my ($edit, $inittext, $buildtexttierref, $strattable, $version, $race, $stratname, $optarrayref) = @_; my @buildtexttier = @{$buildtexttierref}; my $newstratname = $strattable->get(0,1)->get; - open(STRATFILE, "$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>") }; + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>")) }; my @stratfile = (); while () { if (/^$stratname\t/) { @@ -1001,16 +1001,16 @@ sub SaveStrat { } } close(STRATFILE); - open(STRATFILE, ">$version\\$race\\Strategy.txt") or do { get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>") }; + open(STRATFILE, ">$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; print STRATFILE @stratfile; close(STRATFILE); @stratfile = (); - open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>") }; + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>")) }; my @aifile = (); while () { if (/\bfunction\s*init_strategy_$stratname\b/) { - while (( or do { get_translation('err_strategy_not_complete') }) !~ /endfunction/) {} - while (( or do { get_translation('err_strategy_not_complete') }) !~ /endfunction/) {} + while (( or do { confirm_box(get_translation('err_strategy_not_complete')) }) !~ /endfunction/) {} + while (( or do { confirm_box(get_translation('err_strategy_not_complete')) }) !~ /endfunction/) {} push(@aifile, "function init_strategy_$newstratname takes nothing returns nothing\n"); push(@aifile, $inittext->get('1.0', 'end')); push(@aifile, "endfunction\n"); @@ -1032,7 +1032,7 @@ sub SaveStrat { } } close(AIFILE); - open(AIFILE, ">$version\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>") }; + open(AIFILE, ">$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>")) }; print AIFILE @aifile; close(AIFILE); $edit->destroy; @@ -1041,7 +1041,7 @@ sub SaveStrat { sub SaveProfile { my ($edit, $profiletable, $version, $profilename, $optarrayref) = @_; my $newprofilename = $profiletable->get(0,1)->get; - open(PROFILEFILE, "$version\\Profiles.txt") or do { get_translation('err_file_not_found', "<$version\\Profiles.txt>") }; + open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\Profiles.txt>")) }; my @profilefile = (); while () { if (/^$profilename\t/) { @@ -1053,7 +1053,7 @@ sub SaveProfile { } } close(PROFILEFILE); - open(PROFILEFILE, ">$version\\Profiles.txt") or do { get_translation('err_file_not_writing', "<$version\\Profiles.txt>") }; + open(PROFILEFILE, ">$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; print PROFILEFILE @profilefile; close(PROFILEFILE); $edit->destroy; @@ -1083,23 +1083,23 @@ sub EditRacialBuilds { sub LoadRacialBuild { my ($inittext, $buildtext, $ver, $race) = @_; - open(AIFILE, "$ver\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>") }; + open(AIFILE, "$ver\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>")) }; my $line; - while (( or do { get_translation('err_strategy_init_not_set') }) !~ /function global_init_strategy/) {} - while (($line = ( or do { get_translation('err_strategy_init_not_complete') })) !~ /endfunction/) {$inittext->insert('end', $line);} - while (( or do { get_translation('err_strategy_build_set') }) !~ /function global_build_sequence/) {} - while (($line = ( or do { get_translation('err_strategy_build_complete') })) !~ /endfunction/) {$buildtext->insert('end', $line);} + while (( or do { confirm_box(get_translation('err_strategy_init_not_set')) }) !~ /function global_init_strategy/) {} + while (($line = ( or do { confirm_box(get_translation('err_strategy_init_not_complete')) })) !~ /endfunction/) {$inittext->insert('end', $line);} + while (( or do { confirm_box(get_translation('err_strategy_build_set')) }) !~ /function global_build_sequence/) {} + while (($line = ( or do { confirm_box(get_translation('err_strategy_build_complete')) })) !~ /endfunction/) {$buildtext->insert('end', $line);} close(AIFILE); } sub SaveRacialBuild { my ($edit, $inittext, $buildtext, $ver, $race) = @_; - open(AIFILE, "$ver\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>") }; + open(AIFILE, "$ver\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>")) }; my @aifile = (); while () { if (/\bfunction\s*global_init_strategy\b/) { - while (( or do { get_translation('err_global_build_set') }) !~ /endfunction/) {} - while (( or do { get_translation('err_global_build_set') }) !~ /endfunction/) {} + while (( or do { confirm_box(get_translation('err_global_build_set')) }) !~ /endfunction/) {} + while (( or do { confirm_box(get_translation('err_global_build_set')) }) !~ /endfunction/) {} push(@aifile, "function global_init_strategy takes nothing returns nothing\n"); push(@aifile, $inittext->get('1.0', 'end')); push(@aifile, "endfunction\n"); @@ -1112,7 +1112,7 @@ sub SaveRacialBuild { } } close(AIFILE); - open(AIFILE, ">$ver\\$race\\BuildSequence.ai") or do { get_translation('err_file_not_writing', "<$ver\\$race\\BuildSequence.ai>") }; + open(AIFILE, ">$ver\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\$race\\BuildSequence.ai>")) }; print AIFILE @aifile; close(AIFILE); $edit->destroy; @@ -1138,7 +1138,7 @@ sub EditSettings { sub LoadSettings { my ($table, $file) = @_; - open(SETTINGS, $file) or do { get_translation('err_file_not_found', "<$file>") }; + open(SETTINGS, $file) or do { confirm_box(get_translation('err_file_not_found', "<$file>")) }; ; my $i = 0; while() { @@ -1163,7 +1163,7 @@ sub LoadSettings { sub SaveSettings { my ($edit, $table, $file, $rownumber) = @_; - open(SETTINGS, ">$file") or do { get_translation('err_file_not_writing', "<$file>") }; + open(SETTINGS, ">$file") or do { confirm_box(get_translation('err_file_not_writing', "<$file>")) }; print SETTINGS "Variable Setting\tValue\tComment\n"; for(my $i=0;$i<$rownumber;$i++) { my $setting = $table->get($i, 0)->cget('-text'); From a1d28fa61cf06393fd7d7737bb3ab6cd47f0e499 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 9 Feb 2025 18:56:30 +0800 Subject: [PATCH 13/42] Add files via upload --- AMAIStrategyManager.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index b3412f2a7..38a7bf2f6 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -36,7 +36,7 @@ BEGIN sub load_language { my ($lang_file) = @_; return $lang_data_cache{$lang_file} if exists $lang_data_cache{$lang_file}; - open (LANG, $lang_file) or die "Cannot open file <$lang_file>"; + open (LANG, $lang_file) or die "Cannot open file <$lang_file>"; my %keylang; while () { chomp; From 2fc72c6d2849cd06928a8b683f544fa7890a0dbc Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Tue, 11 Feb 2025 00:08:24 +0800 Subject: [PATCH 14/42] Add files via upload --- AMAIStrategyManager.pl | 349 +++++++++++++---------- Languages/Chinese/StrategyManager.txt | 33 ++- Languages/Deutsch/StrategyManager.txt | 17 +- Languages/English/StrategyManager.txt | 29 +- Languages/French/StrategyManager.txt | 17 +- Languages/Norwegian/StrategyManager.txt | 17 +- Languages/Portuguese/StrategyManager.txt | 17 +- Languages/Romanian/StrategyManager.txt | 17 +- Languages/Russian/StrategyManager.txt | 17 +- Languages/Spanish/StrategyManager.txt | 17 +- Languages/Swedish/StrategyManager.txt | 17 +- Templates/StrategyManager.txt | 17 +- 12 files changed, 326 insertions(+), 238 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 38a7bf2f6..35ccd094a 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -7,6 +7,7 @@ use Tk::NoteBook; use open ':std', ':encoding(UTF-8)'; + BEGIN{ if($^O eq 'MSWin32'){ require Win32::Console; @@ -20,19 +21,37 @@ BEGIN $fdialogbug = 1; } -my %lang_data_cache; -my $lang_code_file_path = 'Manager_language.txt'; -open(LANGCODE, "$lang_code_file_path") or do { - open(NEWLANGCODE, ">$lang_code_file_path"); - print NEWLANGCODE "English\n"; - close(NEWLANGCODE); +my $language = "Chinese"; +my $lang_path = 'AMAIStrategyManager.pl'; + +sub set_language { + my ($key) = @_; + open (LANGX, "<$lang_path"); + my @lines = ; + close LANGX; + if (defined $key && $key ne "") { + foreach my $line (@lines) { + if ($line =~ /^(\s*)my\s+\$language\s*=/) { + $line = "$1my \$language = \"$key\";\n"; + last; + } + } + } else { + $language = "English"; + } + open (LANGX, ">$lang_path"); + print LANGX @lines; + close(LANGX); + exec $^X, $lang_path; }; -my $lang_code = ; -chomp($lang_code); -close(LANGCODE); -my $lang_file = "Languages\\$lang_code\\StrategyManager.txt"; + +if (!$language) { + set_language("English"); +} + +my %lang_data_cache; +my $lang_file = "Languages\\$language\\StrategyManager.txt"; my $back_lang_file = "Languages\\English\\StrategyManager.txt"; -my %languages; sub load_language { my ($lang_file) = @_; return $lang_data_cache{$lang_file} if exists $lang_data_cache{$lang_file}; @@ -74,8 +93,8 @@ sub get_translation { my $main = MainWindow->new(-title => get_translation('title_strategy_manager')); my ($screen_width, $screen_height) = ($main->screenwidth, $main->screenheight); -$main->maxsize(400, 1200); -my $lframe = $main->Frame->pack(-side => 'left'); +$main->maxsize(400, 1280); +my $lframe = $main->Frame->pack(-side => 'left', -padx => 4); my $race; my $ver; my $strat; @@ -117,101 +136,109 @@ sub confirm_box { $bframe->Button( -text => get_translation('button_new'), -command => sub { - if ($notebook->raised eq 'strat') { - InsertStratSub("$ver\\$race\\New.ais", $ver, $race); - UpdateStratList($stratlb, $ver, $race) - } - else { - InsertProfileSub("$ver\\New.aip", $ver); - UpdateProfileList($profilelb, $ver) - } + if ($notebook->raised eq 'strat') { + InsertStratSub("$ver\\$race\\New.ais", $ver, $race); + UpdateStratList($stratlb, $ver, $race) + } + else { + InsertProfileSub("$ver\\New.aip", $ver); + UpdateProfileList($profilelb, $ver) + } }, - -width => 16)->pack; + -width => 16, +)->pack; $bframe->Button( -text => get_translation('button_copy'), -command => sub { - if ($notebook->raised eq 'strat') { - CopyStrat($ver, $race, $strat); - UpdateStratList($stratlb, $ver, $race) - } - else { - CopyProfile($ver, $profile); - UpdateProfileList($profilelb, $ver) - } + if ($notebook->raised eq 'strat') { + CopyStrat($ver, $race, $strat); + UpdateStratList($stratlb, $ver, $race) + } + else { + CopyProfile($ver, $profile); + UpdateProfileList($profilelb, $ver) + } }, - -width => 16)->pack; + -width => 16, +)->pack; $bframe->Button( -text => get_translation('button_edit'), -command => sub { - if ($notebook->raised eq 'strat') { - EditStrat($main, $ver, $race, $strat) - } - else { - EditProfile($main, $ver, $profile) - } + if ($notebook->raised eq 'strat') { + EditStrat($main, $ver, $race, $strat) + } + else { + EditProfile($main, $ver, $profile) + } }, - -width => 16)->pack; + -width => 16, +)->pack; $bframe->Button( -text => get_translation('button_lock'), -command => sub { - if ($notebook->raised eq 'strat') { - SetRaceOption($ver, $race, 'debug_strategy', "STRAT_$strat->[0]") - } - else { - SetVerOption($ver, 'debug_profile', GetArrayIndex($profile, $profilelb->get(0, 'end'))) - } + if ($notebook->raised eq 'strat') { + SetRaceOption($ver, $race, 'debug_strategy', "STRAT_$strat->[0]") + } + else { + SetVerOption($ver, 'debug_profile', GetArrayIndex($profile, $profilelb->get(0, 'end'))) + } }, - -width => 16)->pack; + -width => 16, +)->pack; $bframe->Button( -text => get_translation('button_unlock'), -command => sub { - if ($notebook->raised eq 'strat') { - SetRaceOption($ver, $race, 'debug_strategy', -1) - } - else { - SetVerOption($ver, 'debug_profile', -1) - } + if ($notebook->raised eq 'strat') { + SetRaceOption($ver, $race, 'debug_strategy', -1) + } + else { + SetVerOption($ver, 'debug_profile', -1) + } }, - -width => 16)->pack; + -width => 16, +)->pack; $bframe->Button( -text => get_translation('button_extract'), -command => sub { - if ($notebook->raised eq 'strat') { - ExtractStrat($main, $ver, $race, $strat) - } - else { - ExtractProfile($main, $ver, $profile) - } + if ($notebook->raised eq 'strat') { + ExtractStrat($main, $ver, $race, $strat) + } + else { + ExtractProfile($main, $ver, $profile) + } }, - -width => 16)->pack; + -width => 16, +)->pack; $bframe->Button( -text => get_translation('button_insert'), -command => sub { - if ($notebook->raised eq 'strat') { - InsertStrat($main, $ver, $race); - UpdateStratList($stratlb, $ver, $race) - } - else { - InsertProfile($main, $ver); - UpdateProfileList($profilelb, $ver) - } + if ($notebook->raised eq 'strat') { + InsertStrat($main, $ver, $race); + UpdateStratList($stratlb, $ver, $race) + } + else { + InsertProfile($main, $ver); + UpdateProfileList($profilelb, $ver) + } }, - -width => 16)->pack; + -width => 16, +)->pack; $bframe->Button( -text => get_translation('button_remove'), -command => sub { - if ($notebook->raised eq 'strat') { - RemoveStrat($main, $ver, $race, $strat); - UpdateStratList($stratlb, $ver, $race) - } - else { - RemoveProfile($main, $ver, $profile); - UpdateProfileList($profilelb, $ver) - } + if ($notebook->raised eq 'strat') { + RemoveStrat($main, $ver, $race, $strat); + UpdateStratList($stratlb, $ver, $race) + } + else { + RemoveProfile($main, $ver, $profile); + UpdateProfileList($profilelb, $ver) + } }, - -width => 16)->pack; + -width => 16, +)->pack; -open(VERFILE, "Versions.txt") or do { confirm_box(get_translation('err_file_not_found', "")) }; +open(VERFILE, "Versions.txt") or do { confirm_box(get_translation('err_file_not_writing', "")) }; my @vers = ; close(VERFILE); chomp foreach (@vers); @@ -233,11 +260,12 @@ sub confirm_box { UpdateStratList($stratlb, $ver, $race); UpdateProfileList($profilelb, $ver) }, -variable => \$ver, - -width => 20)->pack; + -width => 20 +)->pack; $veropt->addOptions(@vers); $lframe->Label( - -height => 1, # Placeholder -)->pack; + -height => 1, +)->pack; # Placeholder $lframe->Label( -text => get_translation('placeholder_set'), -width => 24, @@ -248,8 +276,8 @@ sub confirm_box { -command => sub { EditSettings($main, "$ver\\GlobalSettings.txt") }, -width => 24)->pack; $lframe->Label( - -height => 1, # Placeholder -)->pack; + -height => 1, +)->pack; # Placeholder $lframe->Label( -text => get_translation('placeholder_raceset'), -width => 24, @@ -258,14 +286,15 @@ sub confirm_box { $lframe->Button( -text => get_translation('button_edit_racial_builds'), -command => sub { EditRacialBuilds($main, $ver, $race) }, - -width => 24)->pack; + -width => 24 +)->pack; $lframe->Button( -text => get_translation('button_edit_racial_settings'), -command => sub { EditSettings($main, "$ver\\$race\\Settings.txt") }, -width => 24)->pack; $lframe->Label( - -height => 1, # Placeholder -)->pack; + -height => 1, +)->pack; # Placeholder $lframe->Label( -text => get_translation('placeholder_compile'), -width => 24, @@ -274,47 +303,73 @@ sub confirm_box { $lframe->Button( -text => get_translation('button_compile'), -command => sub { system "Make$ver.bat" }, - -width => 24)->pack; -$lframe->Button( + -width => 24, +)->pack(-anchor => 'nw'); +my $row1 = $lframe->Frame->pack(-fill => 'x', -anchor => 'nw'); +$row1->Button( -text => get_translation('button_compile_opt'), -command => sub { system "MakeOpt$ver.bat" }, - -width => 24)->pack; -$lframe->Button( + -width => 18, +)->pack(-side => 'left', -padx => 0, -pady => 0); +$row1->Button( + -text => '?', + -command => sub { do { confirm_box(get_translation('confirm_compile_opt')) } }, + -width => 4, +)->pack(-side => 'left', -padx => 2, -pady => 0); +my $row2 = $lframe->Frame->pack(-fill => 'x', -anchor => 'nw'); +$row2->Button( -text => get_translation('button_compile_vsai'), -command => sub { system "MakeVAI$ver.bat" }, - -width => 24)->pack; + -width => 18, +)->pack(-side => 'left', -padx => 0, -pady => 0); +$row2->Button( + -text => '?', + -command => sub { do { confirm_box(get_translation('confirm_compile_vsai')) } }, + -width => 4, +)->pack(-side => 'left', -padx => 2, -pady => 0); $lframe->Label( - -height => 1, # Placeholder -)->pack; + -height => 1, +)->pack; # Placeholder $lframe->Label( -text => get_translation('placeholder_setlang'), -width => 24, -height => 1, )->pack; $langopt = $lframe->Optionmenu( - -command => sub { - my ($choice) = @_; - open(SETLANG, ">Manager_language.txt") or do { confirm_box(get_translation('err_file_not_writing', "")) }; - print SETLANG $choice; - close(SETLANG); - exec($^X, $0, @ARGV); - }, - -variable => \$lang_code, - -width => 20 + -command => sub { set_language(@_); }, + -variable => \$language, + -width => 20, )->pack; $langopt -> addOptions(GetLanguages()); +$lframe->Label( + -height => 1, +)->pack; # Placeholder +$lframe->Label( + -text => get_translation('placeholder_about'), + -width => 24, + -height => 1, + )->pack; + $lframe->Button( + -text => get_translation('button_about'), + -command => sub { + my $url = "https://github.com/SMUnlimited/AMAI"; + my $open_cmd = qq{start "" "$url"}; + system($open_cmd); + }, + -width => 24, +)->pack; # $lframe->Label( -# -height => 4, # Placeholder -# )->pack; +# -height => 4, +# )->pack; # Placeholder # $lframe->Button( # -text => get_translation('button_quit'), # no need # -command => [$main => 'destroy'], -# -width => 24 +# -width => 24, # )->pack; MainLoop; sub GetLanguages { - open(LANG, "Languages.txt") or do { confirm_box(get_translation('err_file_not_found', "")) }; + open(LANG, "Languages.txt") or do { confirm_box(get_translation('err_file_not_writing', "")) }; my @languages = ; close(LANG); shift @languages; @@ -328,7 +383,7 @@ sub GetLanguages { sub GetRaces { my $ver = shift; - open(RACEFILE, "$ver\\Races.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\Races.txt>")) }; + open(RACEFILE, "$ver\\Races.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\Races.txt>")) }; my @races = ; close(RACEFILE); chomp foreach (@races); @@ -352,7 +407,7 @@ sub GetArrayIndex { sub SetRaceOption { my ($ver, $race, $opt, $val) = @_; - open(SETFILE, "$ver\\$race\\Settings.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>")) }; + open(SETFILE, "$ver\\$race\\Settings.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\$race\\Settings.txt>")) }; my @setfile = (); my $optionexists = 0; while() { @@ -366,14 +421,14 @@ sub SetRaceOption { } push @setfile, "$opt\t$val\t\n" if ($optionexists == 0); close(SETFILE); - open(SETFILE, ">$ver\\$race\\Settings.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\Settings.txt>")) }; + open(SETFILE, ">$ver\\$race\\Settings.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\$race\\Settings.txt>")) }; print SETFILE @setfile; close(SETFILE); } sub SetVerOption { my ($ver, $opt, $val) = @_; - open(SETFILE, "$ver\\GlobalSettings.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>")) }; + open(SETFILE, "$ver\\GlobalSettings.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\GlobalSettings.txt>")) }; my @setfile = (); my $optionexists = 0; while() { @@ -387,7 +442,7 @@ sub SetVerOption { } push @setfile, "$opt\t$val\t\n" if ($optionexists == 0); close(SETFILE); - open(SETFILE, ">$ver\\GlobalSettings.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\GlobalSettings.txt>")) }; + open(SETFILE, ">$ver\\GlobalSettings.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\GlobalSettings.txt>")) }; print SETFILE @setfile; close(SETFILE); } @@ -396,7 +451,7 @@ sub GetStratList { my $ver = shift; my $race = shift; return () unless ($ver and $race); - open(STRATFILE, "$ver\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\Strategy.txt>")) }; + open(STRATFILE, "$ver\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\$race\\Strategy.txt>")) }; my @stratlist = (); ; while () { @@ -419,7 +474,7 @@ sub UpdateStratList { sub GetProfileList { my $ver = shift; return () unless ($ver); - open(PROFILEFILE, "$ver\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\Profiles.txt>")) }; + open(PROFILEFILE, "$ver\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\Profiles.txt>")) }; my @profilelist = (); ; while () { @@ -443,7 +498,7 @@ sub RemoveStrat { my $response = $main->messageBox(-message => get_translation('message_remove_strategy'), -title => get_translation('title_really'), -type => 'YesNo', -default => 'no'); return if ($response eq 'no' or $response eq 'No'); my $stratname = @$strat[0]; - open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>")) }; + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; my @stratfile = (); while () { unless (/^$stratname\t/) { @@ -455,7 +510,7 @@ sub RemoveStrat { print STRATFILE @stratfile; close(STRATFILE); @stratfile = (); - open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>")) }; + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>")) }; my @aifile = (); while () { if (/\bfunction\s*init_strategy_$stratname\b/) { @@ -478,7 +533,7 @@ sub RemoveProfile { my $response = $main->messageBox(-message => get_translation('message_remove_profile'), -title => get_translation('title_really'), -type => 'YesNo', -default => 'no'); return if ($response eq 'no' or $response eq 'No'); my $profilename = @$profile[0]; - open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\Profiles.txt>")) }; + open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; my @profilefile = (); while () { unless (/^$profilename\t/) { @@ -511,14 +566,14 @@ sub CopyProfile { sub ExtractStratSub { my ($filename, $version, $race, $stratname) = @_; - open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>")) }; - open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>")) }; - open(TARGETFILE, ">$filename") or do { confirm_box(get_translation('err_file_not_found', "<$filename>")) }; + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>")) }; + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; + open(TARGETFILE, ">$filename") or do { confirm_box(get_translation('err_file_not_writing', "<$filename>")) }; print TARGETFILE "#AMAI 2.0 Strategy\n"; my $line = ; - while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_s')) })) !~ /^$stratname\t/) {} + while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_strategy')) })) !~ /^$stratname\t/) {} print TARGETFILE $line; - while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_b')) })) !~ /\bfunction\s*init_strategy_$stratname\b/) {} + while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_buildsequence')) })) !~ /\bfunction\s*init_strategy_$stratname\b/) {} print TARGETFILE $line; while (($line = ( or do { confirm_box(get_translation('err_strategy_not_complete')) })) !~ /endfunction/) {print TARGETFILE $line;} print TARGETFILE $line; @@ -544,8 +599,8 @@ sub ExtractStrat { sub ExtractProfileSub { my ($filename, $version, $profilename) = @_; - open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\Profiles.txt>")) }; - open(TARGETFILE, ">$filename") or do { confirm_box(get_translation('err_file_not_found', "<$filename>")) }; + open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; + open(TARGETFILE, ">$filename") or do { confirm_box(get_translation('err_file_not_writing', "<$filename>")) }; print TARGETFILE "#AMAI 2.0 Profile\n"; my $line = ; while (($line = ( or do { confirm_box(get_translation('err_profile_not_found_p')) })) !~ /^$profilename\t/) {} @@ -570,11 +625,11 @@ sub ExtractProfile { sub InsertStratSub { my ($filename, $version, $race) = @_; my $stratlist = join ',', GetStratList($version, $race); - open(SOURCE, $filename) or do { confirm_box(get_translation('err_file_not_found', "<$filename>")) }; - open(AIFILE, ">>$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>")) }; - open(STRATFILE, ">>$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>")) }; + open(SOURCE, $filename) or do { confirm_box(get_translation('err_file_not_writing', "<$filename>")) }; + open(AIFILE, ">>$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>")) }; + open(STRATFILE, ">>$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; my $line = ; - if ($line !~ /#AMAI 2.0 Strategy/) {die get_translation('err_not_file_s');} + if ($line !~ /#AMAI 2.0 Strategy/) {die get_translation('err_not_file_sequence');} $line = ; $line =~ /^([^\t]*)\t/; my $oldstratname = $1; @@ -611,10 +666,10 @@ sub InsertStrat { sub InsertProfileSub { my ($filename, $version) = @_; my $profilelist = join ',', GetProfileList($version); - open(SOURCE, $filename) or do { confirm_box(get_translation('err_file_not_found', "<$filename>")) }; - open(PROFILEFILE, ">>$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\Profiles.txt>")) }; + open(SOURCE, $filename) or do { confirm_box(get_translation('err_file_not_writing', "<$filename>")) }; + open(PROFILEFILE, ">>$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; my $line = ; - if ($line !~ /#AMAI 2.0 Profile/) {die get_translation('err_not_file_p') }; + if ($line !~ /#AMAI 2.0 Profile/) {die get_translation('err_not_file_profiles') }; $line = ; $line =~ /^([^\t]*)\t/; my $oldprofilename = $1; @@ -650,7 +705,7 @@ sub EditStrat { my $rframe = $edit->Frame->pack(-side => 'right'); my $bframe = $rframe->Frame->pack(-side => 'right'); my $strattable = $rframe->Table(-rows => 37)->pack(-side => 'left'); - open(TIERFILE, "$ver\\$race\\Tiers.txt") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\Tiers.txt>")) }; + open(TIERFILE, "$ver\\$race\\Tiers.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\$race\\Tiers.txt>")) }; my @tiers = ; my $tiernum = @tiers; close(TIERFILE); @@ -695,7 +750,7 @@ sub EditProfile { sub GetVarList { my ($ver, $var, $race) = @_; - open(VARFILE, "VarDefs.ini") or do { confirm_box(get_translation('err_file_not_found', "")) }; + open(VARFILE, "VarDefs.ini") or do { confirm_box(get_translation('err_file_not_writing', "")) }; ; while() { chomp; @@ -703,7 +758,7 @@ sub GetVarList { my $fn = $1; $fn =~ s/\$RACE\$/$race/g; close(VARFILE); - open(VARTABLE, "$ver\\$fn") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$fn>")) }; + open(VARTABLE, "$ver\\$fn") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\$fn>")) }; my @vt = (); while () { /([^\t\n]*)(\t|\n|$)/; @@ -764,7 +819,7 @@ sub ExtendOptList { sub GetOptList { my $ver = shift; - open(OPTFILE, "Optionlist.ini") or do { confirm_box(get_translation('err_file_not_found', "")) }; + open(OPTFILE, "Optionlist.ini") or do { confirm_box(get_translation('err_file_not_writing', "")) }; my %optlist = (); my @optfile = ; close(OPTFILE); @@ -794,7 +849,7 @@ sub GetUnitLists { my @buildinglist = (0); my @upgradelist = (0); my @herolist = (0); - open(UNITFILE, "$version\\StandardUnits.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\StandardUnits.txt>")) }; + open(UNITFILE, "$version\\StandardUnits.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\StandardUnits.txt>")) }; while() { my @line = split("\t", $_); push @buildinglist, $line[0] if ($line[2] =~ /$race/ and $line[4] eq "BUILDING"); @@ -816,7 +871,7 @@ sub GetProfileUnitLists { $unitlists{$_} = \@unitlist; $herolists{$_} = \@herolist; } - open(UNITFILE, "$version\\StandardUnits.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\StandardUnits.txt>")) }; + open(UNITFILE, "$version\\StandardUnits.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\StandardUnits.txt>")) }; while() { my @line = split("\t", $_); foreach (@races) { @@ -837,7 +892,7 @@ sub FillTable { my @buildinglist = @{$buildinglistref}; my @upgradelist = @{$upgradelistref}; my @herolist = @{$herolistref}; - open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>")) }; + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; my $line = ; chomp($line); my @opt = split("\t", $line); @@ -855,7 +910,7 @@ sub FillTable { $strattable->put($i, 0, $l); $i++; } - while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_s')) })) !~ /^$strat\t/) {} + while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_strategy')) })) !~ /^$strat\t/) {} chomp($line); my @optval = split("\t", $line); $i = 0; @@ -900,7 +955,7 @@ sub FillProfileTable { my ($unitlistref, $herolistref) = GetProfileUnitLists($version, GetRaces($version), 'NEUTRAL'); my %unitlists = %{$unitlistref}; my %herolists = %{$herolistref}; - open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\Profiles.txt>")) }; + open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; my $line = ; chomp($line); my @opt = split("\t", $line); @@ -911,7 +966,7 @@ sub FillProfileTable { $profiletable->put($i, 0, $l); $i++; } - while (($line = ( or do { confirm_box(get_translation('err_profile_not_found_p')) })) !~ /^$profile\t/) {} + while (($line = ( or do { confirm_box(get_translation('err_profile_not_found_profiles')) })) !~ /^$profile\t/) {} chomp($line); my @optval = split("\t", $line); $i = 0; @@ -960,7 +1015,7 @@ sub AssembleTable { sub FillTexts { my ($inittext, $buildtexttierref, $version, $race, $stratname, @optarray) = @_; my @buildtexttier = @{$buildtexttierref}; - open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>")) }; + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>")) }; my $line; while (( or do { confirm_box(get_translation('err_strategy_not_found_ai')) }) !~ /\bfunction\s*init_strategy_$stratname\b/) {} while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_ai')) })) !~ /endfunction/) {$inittext->insert('end', $line);} @@ -989,7 +1044,7 @@ sub SaveStrat { my ($edit, $inittext, $buildtexttierref, $strattable, $version, $race, $stratname, $optarrayref) = @_; my @buildtexttier = @{$buildtexttierref}; my $newstratname = $strattable->get(0,1)->get; - open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\Strategy.txt>")) }; + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; my @stratfile = (); while () { if (/^$stratname\t/) { @@ -1005,7 +1060,7 @@ sub SaveStrat { print STRATFILE @stratfile; close(STRATFILE); @stratfile = (); - open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$version\\$race\\BuildSequence.ai>")) }; + open(AIFILE, "$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>")) }; my @aifile = (); while () { if (/\bfunction\s*init_strategy_$stratname\b/) { @@ -1041,7 +1096,7 @@ sub SaveStrat { sub SaveProfile { my ($edit, $profiletable, $version, $profilename, $optarrayref) = @_; my $newprofilename = $profiletable->get(0,1)->get; - open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_found', "<$version\\Profiles.txt>")) }; + open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; my @profilefile = (); while () { if (/^$profilename\t/) { @@ -1083,7 +1138,7 @@ sub EditRacialBuilds { sub LoadRacialBuild { my ($inittext, $buildtext, $ver, $race) = @_; - open(AIFILE, "$ver\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>")) }; + open(AIFILE, "$ver\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\$race\\BuildSequence.ai>")) }; my $line; while (( or do { confirm_box(get_translation('err_strategy_init_not_set')) }) !~ /function global_init_strategy/) {} while (($line = ( or do { confirm_box(get_translation('err_strategy_init_not_complete')) })) !~ /endfunction/) {$inittext->insert('end', $line);} @@ -1094,7 +1149,7 @@ sub LoadRacialBuild { sub SaveRacialBuild { my ($edit, $inittext, $buildtext, $ver, $race) = @_; - open(AIFILE, "$ver\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_found', "<$ver\\$race\\BuildSequence.ai>")) }; + open(AIFILE, "$ver\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\$race\\BuildSequence.ai>")) }; my @aifile = (); while () { if (/\bfunction\s*global_init_strategy\b/) { @@ -1138,7 +1193,7 @@ sub EditSettings { sub LoadSettings { my ($table, $file) = @_; - open(SETTINGS, $file) or do { confirm_box(get_translation('err_file_not_found', "<$file>")) }; + open(SETTINGS, $file) or do { confirm_box(get_translation('err_file_not_writing', "<$file>")) }; ; my $i = 0; while() { diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt index d6f6e7017..cfd22ade0 100644 --- a/Languages/Chinese/StrategyManager.txt +++ b/Languages/Chinese/StrategyManager.txt @@ -10,29 +10,30 @@ button_quit=退出 button_edit_racial_builds=编辑种族构筑 button_edit_global=编辑全局参数 button_edit_racial_settings=编辑种族参数 -button_compile=编译脚本 -button_compile_opt=编译并优化脚本 -button_compile_vsai=编译 vs 暴雪AI 脚本 +button_compile=常规 +button_compile_opt=优化 +button_compile_vsai=vs 暴雪AI button_ok=提交 button_cancel=取消 button_yes=确定 +button_about=访问官网 placeholder_operate=- 操作 - placeholder_ver=- 版本与种族 - placeholder_set=- 全局设置 - placeholder_raceset=- 种族设置 - -placeholder_compile=- 编译 - +placeholder_compile=- 编译脚本 - placeholder_setlang=- 管理器语言 - +placeholder_about=- 关于 - label_strategies=策略 label_profiles=档案 label_Init_code=策略初始化设置 label_tier_code=%s 本基地训练/研究逻辑 label_racial_Init_code=全局限制 label_racial_build=全局训练/研究逻辑 -err_file_not_found=%s 文件丢失 -err_file_not_writing=%s 文件不能写入 -err_strategy_not_found_a=AI文件中找不到策略 -err_strategy_not_found=策略表中找不到策略 -err_strategy_not_found_b=构筑表中找不到策略 +err_file_not_writing=%s 文件不能写入,可能是文件丢失或被其他程序占用! +err_strategy_not_found_ai=AI文件中找不到策略 +err_strategy_not_found_strategy=策略表中找不到策略 +err_strategy_not_found_buildsequence=构筑表中找不到策略 err_strategy_not_complete=策略未完成 err_strategy_not_complete_ai=该AI文件的策略尚未完成 err_strategy_init_not_set=种族构筑未初始化 @@ -40,11 +41,13 @@ err_strategy_init_not_complete=种族构筑未完成 err_strategy_build_set=种族构筑未设置 err_strategy_build_complete=种族构筑未完成 err_global_build_set=种族构筑未完成 -err_profile_not_found_p=档案表中找不到该档案 -err_not_file_s=策略文件丢失 -err_not_file_p=档案文件丢失 +err_profile_not_found_profiles=档案表中找不到该档案 +err_not_file_sequence=策略文件丢失 +err_not_file_profiles=档案文件丢失 message_remove_strategy=确定删除策略? message_remove_profile=确定删除档案? +confirm_compile_opt=编译经过优化的脚本,可稍微提升AI运行效率 +confirm_compile_vsai=单双数队伍分别为 AMAI 和 第三方AI (默认为暴雪官方AI) title_really=提示 title_strategy_manager=AMAI 策略管理器 title_profile_editor=AMAI 档案编辑器 @@ -52,11 +55,11 @@ title_strategy_editor=AMAI 策略编辑器 title_racial_builds_editor=AMAI 种族构筑编辑器 title_settings_editor=AMAI 参数编辑器 -sleep_multiplier=睡眠倍率,增加可以提高性能 +sleep_multiplier=睡眠倍率,越高性能越好,性能与AI响应度反相关 slm_start=多少AI才能开始增加睡眠倍率? slm_end=多少AI才能停止增加睡眠倍率? -slm_start_mult=未达到上述AI数量时,睡眠倍率是多少? -slm_end_mult=超过上述AI数量时,睡眠倍率是多少? +slm_start_mult=未达到开始增加的AI数量时,睡眠倍率是多少? +slm_end_mult=超过停止增加的AI数量时,睡眠倍率是多少? hero_radius=扫描英雄周围多少距离来判定英雄是否被敌人包围或有被包围的危险,以便逃离? use_linear_upkeep_saving=AI是此时间内保持维修人口,还是在达到维护人口临界值时一次性保持? repair_threshold=仅当AI拥有超过此数量的工人时,才会修理建筑物? diff --git a/Languages/Deutsch/StrategyManager.txt b/Languages/Deutsch/StrategyManager.txt index 613672c20..aa7d8512d 100644 --- a/Languages/Deutsch/StrategyManager.txt +++ b/Languages/Deutsch/StrategyManager.txt @@ -16,23 +16,24 @@ button_compile_vsai= button_ok= button_cancel= button_yes= +button_about= placeholder_operate= placeholder_ver= placeholder_set= placeholder_raceset= placeholder_compile= placeholder_setlang= +placeholder_about= label_strategies= label_profiles= label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= -err_file_not_found= err_file_not_writing= -err_strategy_not_found_a= -err_strategy_not_found= -err_strategy_not_found_b= +err_strategy_not_found_ai= +err_strategy_not_found_strategy= +err_strategy_not_found_buildsequence= err_strategy_not_complete= err_strategy_not_complete_ai= err_strategy_init_not_set= @@ -40,11 +41,13 @@ err_strategy_init_not_complete= err_strategy_build_set= err_strategy_build_complete= err_global_build_set= -err_profile_not_found_p= -err_not_file_s= -err_not_file_p= +err_profile_not_found_profiles= +err_not_file_sequence= +err_not_file_profiles= message_remove_strategy= message_remove_profile= +confirm_compile_opt= +confirm_compile_vsai= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/English/StrategyManager.txt b/Languages/English/StrategyManager.txt index 984393485..a31c41f1f 100644 --- a/Languages/English/StrategyManager.txt +++ b/Languages/English/StrategyManager.txt @@ -10,29 +10,30 @@ button_quit=Quit button_edit_racial_builds=Edit Racial Builds button_edit_global=Edit Global Settings button_edit_racial_settings=Edit Racial Settings -button_compile=Compile -button_compile_opt=Compile, Optimize -button_compile_vsai=Compile AMAIvsAI +button_compile=Normal +button_compile_opt=Optimize +button_compile_vsai=AMAI vs AI button_ok=OK button_cancel=Cancel button_yes=Yes +button_about=GitHub placeholder_operate=- Operate - placeholder_ver=- Versions and Race - placeholder_set=- Global Settings - placeholder_raceset= - Race Settings - -placeholder_compile=- Compile - +placeholder_compile=- Compile Script- placeholder_setlang=- Manager Language - +placeholder_about=- About - label_strategies=Strategies label_profiles=Profiles label_Init_code=Initalisation Code label_racial_Init_code=Racial Initalisation Code label_racial_build=Racial Build Code label_tier_code=Code for Tier %s -err_file_not_found=File <%s> not found! -err_file_not_writing=File <%s> could not be opened for writing! -err_strategy_not_found_a=Strategy not found in AI File -err_strategy_not_found_s=Strategy not found in Strategy Table -err_strategy_not_found_b=Strategy not found in Build Sequence +err_file_not_writing=File <%s> could not be opened for writing , Please check if the file exists or is occupied by other programs! +err_strategy_not_found_ai=Strategy not found in AI File +err_strategy_not_found_strategy=Strategy not found in Strategy Table +err_strategy_not_found_buildsequence=Strategy not found in Build Sequence err_strategy_not_complete=Strategy not complete in Build Sequence err_strategy_not_complete_ai=Strategy not complete in AI File err_strategy_init_not_set=global_init_strategy not in Build Sequence @@ -40,12 +41,14 @@ err_strategy_init_not_complete=global_init_strategy not complete in Build Sequen err_strategy_build_set=global_build_sequence not in Build Sequence err_global_build_set=Global Builds not complete in Build Sequence err_strategy_build_complete=global_build_sequence not complete in Build Sequence -err_profile_not_found_p=Profile not found in Profile Table -err_not_file_s=No AMAI 2.0 Strategy File -err_not_file_p=No AMAI 2.0 Profile File +err_profile_not_found_profiles=Profile not found in Profile Table +err_not_file_sequence=No AMAI 2.0 Strategy File +err_not_file_profiles=No AMAI 2.0 Profile File message_remove_strategy=Are you sure you want to remove that strategy? message_remove_profile=Are you sure you want to remove that profile? -title_really=Really? +confirm_compile_opt=Compile optimized scripts to accelerate AI efficiency +confirm_compile_vsai=The odd and even teams are AMAI and third-party AI (defaults to Blizzard official AI) +title_really=Tip title_strategy_manager=AMAI Strategy Manager title_profile_editor=AMAI Profile Editor title_strategy_editor=AMAI Strategy Editor diff --git a/Languages/French/StrategyManager.txt b/Languages/French/StrategyManager.txt index 613672c20..aa7d8512d 100644 --- a/Languages/French/StrategyManager.txt +++ b/Languages/French/StrategyManager.txt @@ -16,23 +16,24 @@ button_compile_vsai= button_ok= button_cancel= button_yes= +button_about= placeholder_operate= placeholder_ver= placeholder_set= placeholder_raceset= placeholder_compile= placeholder_setlang= +placeholder_about= label_strategies= label_profiles= label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= -err_file_not_found= err_file_not_writing= -err_strategy_not_found_a= -err_strategy_not_found= -err_strategy_not_found_b= +err_strategy_not_found_ai= +err_strategy_not_found_strategy= +err_strategy_not_found_buildsequence= err_strategy_not_complete= err_strategy_not_complete_ai= err_strategy_init_not_set= @@ -40,11 +41,13 @@ err_strategy_init_not_complete= err_strategy_build_set= err_strategy_build_complete= err_global_build_set= -err_profile_not_found_p= -err_not_file_s= -err_not_file_p= +err_profile_not_found_profiles= +err_not_file_sequence= +err_not_file_profiles= message_remove_strategy= message_remove_profile= +confirm_compile_opt= +confirm_compile_vsai= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Norwegian/StrategyManager.txt b/Languages/Norwegian/StrategyManager.txt index 613672c20..aa7d8512d 100644 --- a/Languages/Norwegian/StrategyManager.txt +++ b/Languages/Norwegian/StrategyManager.txt @@ -16,23 +16,24 @@ button_compile_vsai= button_ok= button_cancel= button_yes= +button_about= placeholder_operate= placeholder_ver= placeholder_set= placeholder_raceset= placeholder_compile= placeholder_setlang= +placeholder_about= label_strategies= label_profiles= label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= -err_file_not_found= err_file_not_writing= -err_strategy_not_found_a= -err_strategy_not_found= -err_strategy_not_found_b= +err_strategy_not_found_ai= +err_strategy_not_found_strategy= +err_strategy_not_found_buildsequence= err_strategy_not_complete= err_strategy_not_complete_ai= err_strategy_init_not_set= @@ -40,11 +41,13 @@ err_strategy_init_not_complete= err_strategy_build_set= err_strategy_build_complete= err_global_build_set= -err_profile_not_found_p= -err_not_file_s= -err_not_file_p= +err_profile_not_found_profiles= +err_not_file_sequence= +err_not_file_profiles= message_remove_strategy= message_remove_profile= +confirm_compile_opt= +confirm_compile_vsai= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Portuguese/StrategyManager.txt b/Languages/Portuguese/StrategyManager.txt index 613672c20..aa7d8512d 100644 --- a/Languages/Portuguese/StrategyManager.txt +++ b/Languages/Portuguese/StrategyManager.txt @@ -16,23 +16,24 @@ button_compile_vsai= button_ok= button_cancel= button_yes= +button_about= placeholder_operate= placeholder_ver= placeholder_set= placeholder_raceset= placeholder_compile= placeholder_setlang= +placeholder_about= label_strategies= label_profiles= label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= -err_file_not_found= err_file_not_writing= -err_strategy_not_found_a= -err_strategy_not_found= -err_strategy_not_found_b= +err_strategy_not_found_ai= +err_strategy_not_found_strategy= +err_strategy_not_found_buildsequence= err_strategy_not_complete= err_strategy_not_complete_ai= err_strategy_init_not_set= @@ -40,11 +41,13 @@ err_strategy_init_not_complete= err_strategy_build_set= err_strategy_build_complete= err_global_build_set= -err_profile_not_found_p= -err_not_file_s= -err_not_file_p= +err_profile_not_found_profiles= +err_not_file_sequence= +err_not_file_profiles= message_remove_strategy= message_remove_profile= +confirm_compile_opt= +confirm_compile_vsai= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Romanian/StrategyManager.txt b/Languages/Romanian/StrategyManager.txt index 613672c20..aa7d8512d 100644 --- a/Languages/Romanian/StrategyManager.txt +++ b/Languages/Romanian/StrategyManager.txt @@ -16,23 +16,24 @@ button_compile_vsai= button_ok= button_cancel= button_yes= +button_about= placeholder_operate= placeholder_ver= placeholder_set= placeholder_raceset= placeholder_compile= placeholder_setlang= +placeholder_about= label_strategies= label_profiles= label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= -err_file_not_found= err_file_not_writing= -err_strategy_not_found_a= -err_strategy_not_found= -err_strategy_not_found_b= +err_strategy_not_found_ai= +err_strategy_not_found_strategy= +err_strategy_not_found_buildsequence= err_strategy_not_complete= err_strategy_not_complete_ai= err_strategy_init_not_set= @@ -40,11 +41,13 @@ err_strategy_init_not_complete= err_strategy_build_set= err_strategy_build_complete= err_global_build_set= -err_profile_not_found_p= -err_not_file_s= -err_not_file_p= +err_profile_not_found_profiles= +err_not_file_sequence= +err_not_file_profiles= message_remove_strategy= message_remove_profile= +confirm_compile_opt= +confirm_compile_vsai= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Russian/StrategyManager.txt b/Languages/Russian/StrategyManager.txt index 613672c20..aa7d8512d 100644 --- a/Languages/Russian/StrategyManager.txt +++ b/Languages/Russian/StrategyManager.txt @@ -16,23 +16,24 @@ button_compile_vsai= button_ok= button_cancel= button_yes= +button_about= placeholder_operate= placeholder_ver= placeholder_set= placeholder_raceset= placeholder_compile= placeholder_setlang= +placeholder_about= label_strategies= label_profiles= label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= -err_file_not_found= err_file_not_writing= -err_strategy_not_found_a= -err_strategy_not_found= -err_strategy_not_found_b= +err_strategy_not_found_ai= +err_strategy_not_found_strategy= +err_strategy_not_found_buildsequence= err_strategy_not_complete= err_strategy_not_complete_ai= err_strategy_init_not_set= @@ -40,11 +41,13 @@ err_strategy_init_not_complete= err_strategy_build_set= err_strategy_build_complete= err_global_build_set= -err_profile_not_found_p= -err_not_file_s= -err_not_file_p= +err_profile_not_found_profiles= +err_not_file_sequence= +err_not_file_profiles= message_remove_strategy= message_remove_profile= +confirm_compile_opt= +confirm_compile_vsai= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Spanish/StrategyManager.txt b/Languages/Spanish/StrategyManager.txt index 613672c20..aa7d8512d 100644 --- a/Languages/Spanish/StrategyManager.txt +++ b/Languages/Spanish/StrategyManager.txt @@ -16,23 +16,24 @@ button_compile_vsai= button_ok= button_cancel= button_yes= +button_about= placeholder_operate= placeholder_ver= placeholder_set= placeholder_raceset= placeholder_compile= placeholder_setlang= +placeholder_about= label_strategies= label_profiles= label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= -err_file_not_found= err_file_not_writing= -err_strategy_not_found_a= -err_strategy_not_found= -err_strategy_not_found_b= +err_strategy_not_found_ai= +err_strategy_not_found_strategy= +err_strategy_not_found_buildsequence= err_strategy_not_complete= err_strategy_not_complete_ai= err_strategy_init_not_set= @@ -40,11 +41,13 @@ err_strategy_init_not_complete= err_strategy_build_set= err_strategy_build_complete= err_global_build_set= -err_profile_not_found_p= -err_not_file_s= -err_not_file_p= +err_profile_not_found_profiles= +err_not_file_sequence= +err_not_file_profiles= message_remove_strategy= message_remove_profile= +confirm_compile_opt= +confirm_compile_vsai= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Swedish/StrategyManager.txt b/Languages/Swedish/StrategyManager.txt index 613672c20..aa7d8512d 100644 --- a/Languages/Swedish/StrategyManager.txt +++ b/Languages/Swedish/StrategyManager.txt @@ -16,23 +16,24 @@ button_compile_vsai= button_ok= button_cancel= button_yes= +button_about= placeholder_operate= placeholder_ver= placeholder_set= placeholder_raceset= placeholder_compile= placeholder_setlang= +placeholder_about= label_strategies= label_profiles= label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= -err_file_not_found= err_file_not_writing= -err_strategy_not_found_a= -err_strategy_not_found= -err_strategy_not_found_b= +err_strategy_not_found_ai= +err_strategy_not_found_strategy= +err_strategy_not_found_buildsequence= err_strategy_not_complete= err_strategy_not_complete_ai= err_strategy_init_not_set= @@ -40,11 +41,13 @@ err_strategy_init_not_complete= err_strategy_build_set= err_strategy_build_complete= err_global_build_set= -err_profile_not_found_p= -err_not_file_s= -err_not_file_p= +err_profile_not_found_profiles= +err_not_file_sequence= +err_not_file_profiles= message_remove_strategy= message_remove_profile= +confirm_compile_opt= +confirm_compile_vsai= title_really= title_strategy_manager= title_profile_editor= diff --git a/Templates/StrategyManager.txt b/Templates/StrategyManager.txt index 613672c20..aa7d8512d 100644 --- a/Templates/StrategyManager.txt +++ b/Templates/StrategyManager.txt @@ -16,23 +16,24 @@ button_compile_vsai= button_ok= button_cancel= button_yes= +button_about= placeholder_operate= placeholder_ver= placeholder_set= placeholder_raceset= placeholder_compile= placeholder_setlang= +placeholder_about= label_strategies= label_profiles= label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= -err_file_not_found= err_file_not_writing= -err_strategy_not_found_a= -err_strategy_not_found= -err_strategy_not_found_b= +err_strategy_not_found_ai= +err_strategy_not_found_strategy= +err_strategy_not_found_buildsequence= err_strategy_not_complete= err_strategy_not_complete_ai= err_strategy_init_not_set= @@ -40,11 +41,13 @@ err_strategy_init_not_complete= err_strategy_build_set= err_strategy_build_complete= err_global_build_set= -err_profile_not_found_p= -err_not_file_s= -err_not_file_p= +err_profile_not_found_profiles= +err_not_file_sequence= +err_not_file_profiles= message_remove_strategy= message_remove_profile= +confirm_compile_opt= +confirm_compile_vsai= title_really= title_strategy_manager= title_profile_editor= From 23a7298129e6fdac6abeb145ca4c0c86adabd400 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Tue, 11 Feb 2025 00:09:06 +0800 Subject: [PATCH 15/42] Delete Manager_language.txt --- Manager_language.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Manager_language.txt diff --git a/Manager_language.txt b/Manager_language.txt deleted file mode 100644 index 155f1ecaf..000000000 --- a/Manager_language.txt +++ /dev/null @@ -1 +0,0 @@ -Engilsh From a61edc6415f07e9717a9c82ba51f6db1628602db Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Tue, 11 Feb 2025 00:47:51 +0800 Subject: [PATCH 16/42] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20AMAIStrategyManager.?= =?UTF-8?q?pl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AMAIStrategyManager.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 35ccd094a..a859b6363 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -21,7 +21,7 @@ BEGIN $fdialogbug = 1; } -my $language = "Chinese"; +my $language = "English"; my $lang_path = 'AMAIStrategyManager.pl'; sub set_language { From 6dde28217d19c34de86f5cbd7b882c1e50f62969 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Tue, 11 Feb 2025 23:02:59 +0800 Subject: [PATCH 17/42] Add files via upload --- AMAIStrategyManager.pl | 84 ++++++++++++------ Languages/Chinese/StrategyManager.txt | 122 +++++++++++++------------- 2 files changed, 118 insertions(+), 88 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index a859b6363..4089ae39a 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -5,6 +5,7 @@ use Tk::TextUndo; use Tk::Table; use Tk::NoteBook; +use Tk::Font; use open ':std', ':encoding(UTF-8)'; @@ -21,7 +22,7 @@ BEGIN $fdialogbug = 1; } -my $language = "English"; +my $language = "Chinese"; my $lang_path = 'AMAIStrategyManager.pl'; sub set_language { @@ -63,6 +64,7 @@ sub load_language { my ($key, $value) = split '=', $_, 2; unless (defined $key && defined $value) { warn "Invalid line format in language file at line $.: $_"; + print 11; next; } # $key =~ s/^\s+|\s+$//g; @@ -70,6 +72,7 @@ sub load_language { $keylang{$key} = $value; } close LANG; + print \%keylang; $lang_data_cache{$lang_file} = \%keylang; return \%keylang; } @@ -87,31 +90,30 @@ sub get_translation { if (@args) { return join(@args) . " $key"; } else { - return "$key"; + return $key; } } my $main = MainWindow->new(-title => get_translation('title_strategy_manager')); my ($screen_width, $screen_height) = ($main->screenwidth, $main->screenheight); -$main->maxsize(400, 1280); +$main->maxsize(520, 1280); my $lframe = $main->Frame->pack(-side => 'left', -padx => 4); my $race; my $ver; my $strat; my $profile; my $rframe = $main->Frame->pack(-side => 'right'); +my $font = $main->Font(-family => "Segoe UI", -size => 10, -weight => 'normal'); my $notebook = $rframe->NoteBook()->pack(-side => 'left'); -$notebook->configure(-font => ['Helvetica', 10]); +$notebook->configure(-font => ['Segoe UI', 12]); my $stratframe = $notebook->add("strat", -label => get_translation('label_strategies')); my $profileframe = $notebook->add("profile", -label => get_translation('label_profiles')); -my $stratlb = $stratframe->Listbox(-height => 0)->pack; -$stratlb = $stratframe->Scrolled('Listbox', +my $stratlb = $stratframe->Scrolled('Listbox', -scrollbars => 'se', -height => 0, )->pack(-fill => 'both', -expand => 1); tie $strat, "Tk::Listbox", $stratlb; -my $profilelb = $profileframe->Listbox(-height => 0)->pack; -$profilelb = $profileframe->Scrolled('Listbox', +my $profilelb = $profileframe->Scrolled('Listbox', -scrollbars => 'se', -height => 0, )->pack(-fill => 'both', -expand => 1); @@ -130,11 +132,13 @@ sub confirm_box { my $bframe = $rframe->Frame->pack(-side => 'right'); $bframe->Label( -text => get_translation('placeholder_operate'), - -width => 16, + -font => $font, + -width => 18, -height => 1, )->pack; $bframe->Button( -text => get_translation('button_new'), + -font => $font, -command => sub { if ($notebook->raised eq 'strat') { InsertStratSub("$ver\\$race\\New.ais", $ver, $race); @@ -145,10 +149,11 @@ sub confirm_box { UpdateProfileList($profilelb, $ver) } }, - -width => 16, + -width => 18, )->pack; $bframe->Button( -text => get_translation('button_copy'), + -font => $font, -command => sub { if ($notebook->raised eq 'strat') { CopyStrat($ver, $race, $strat); @@ -159,10 +164,11 @@ sub confirm_box { UpdateProfileList($profilelb, $ver) } }, - -width => 16, + -width => 18, )->pack; $bframe->Button( -text => get_translation('button_edit'), + -font => $font, -command => sub { if ($notebook->raised eq 'strat') { EditStrat($main, $ver, $race, $strat) @@ -171,10 +177,11 @@ sub confirm_box { EditProfile($main, $ver, $profile) } }, - -width => 16, + -width => 18, )->pack; $bframe->Button( -text => get_translation('button_lock'), + -font => $font, -command => sub { if ($notebook->raised eq 'strat') { SetRaceOption($ver, $race, 'debug_strategy', "STRAT_$strat->[0]") @@ -183,10 +190,11 @@ sub confirm_box { SetVerOption($ver, 'debug_profile', GetArrayIndex($profile, $profilelb->get(0, 'end'))) } }, - -width => 16, + -width => 18, )->pack; $bframe->Button( -text => get_translation('button_unlock'), + -font => $font, -command => sub { if ($notebook->raised eq 'strat') { SetRaceOption($ver, $race, 'debug_strategy', -1) @@ -195,10 +203,11 @@ sub confirm_box { SetVerOption($ver, 'debug_profile', -1) } }, - -width => 16, + -width => 18, )->pack; $bframe->Button( -text => get_translation('button_extract'), + -font => $font, -command => sub { if ($notebook->raised eq 'strat') { ExtractStrat($main, $ver, $race, $strat) @@ -207,10 +216,11 @@ sub confirm_box { ExtractProfile($main, $ver, $profile) } }, - -width => 16, + -width => 18, )->pack; $bframe->Button( -text => get_translation('button_insert'), + -font => $font, -command => sub { if ($notebook->raised eq 'strat') { InsertStrat($main, $ver, $race); @@ -221,10 +231,11 @@ sub confirm_box { UpdateProfileList($profilelb, $ver) } }, - -width => 16, + -width => 18, )->pack; $bframe->Button( -text => get_translation('button_remove'), + -font => $font, -command => sub { if ($notebook->raised eq 'strat') { RemoveStrat($main, $ver, $race, $strat); @@ -235,7 +246,7 @@ sub confirm_box { UpdateProfileList($profilelb, $ver) } }, - -width => 16, + -width => 18, )->pack; open(VERFILE, "Versions.txt") or do { confirm_box(get_translation('err_file_not_writing', "")) }; @@ -247,6 +258,7 @@ sub confirm_box { my $langopt; $lframe->Label( -text => get_translation('placeholder_ver'), + -font => $font, -width => 24, -height => 1, )->pack; @@ -255,11 +267,13 @@ sub confirm_box { $raceopt = $lframe->Optionmenu( -command => sub { UpdateStratList($stratlb, $ver, $race) }, -variable => \$race, + -font => $font, -width => 20)->pack(-after => $veropt); $raceopt -> addOptions(GetRaces($ver)); UpdateStratList($stratlb, $ver, $race); UpdateProfileList($profilelb, $ver) }, -variable => \$ver, + -font => $font, -width => 20 )->pack; $veropt->addOptions(@vers); @@ -268,11 +282,13 @@ sub confirm_box { )->pack; # Placeholder $lframe->Label( -text => get_translation('placeholder_set'), + -font => $font, -width => 24, -height => 1, )->pack; $lframe->Button( -text => get_translation('button_edit_global'), + -font => $font, -command => sub { EditSettings($main, "$ver\\GlobalSettings.txt") }, -width => 24)->pack; $lframe->Label( @@ -280,16 +296,19 @@ sub confirm_box { )->pack; # Placeholder $lframe->Label( -text => get_translation('placeholder_raceset'), + -font => $font, -width => 24, -height => 1, )->pack; $lframe->Button( -text => get_translation('button_edit_racial_builds'), + -font => $font, -command => sub { EditRacialBuilds($main, $ver, $race) }, -width => 24 )->pack; $lframe->Button( -text => get_translation('button_edit_racial_settings'), + -font => $font, -command => sub { EditSettings($main, "$ver\\$race\\Settings.txt") }, -width => 24)->pack; $lframe->Label( @@ -297,33 +316,39 @@ sub confirm_box { )->pack; # Placeholder $lframe->Label( -text => get_translation('placeholder_compile'), + -font => $font, -width => 24, -height => 1, )->pack; $lframe->Button( -text => get_translation('button_compile'), + -font => $font, -command => sub { system "Make$ver.bat" }, -width => 24, )->pack(-anchor => 'nw'); my $row1 = $lframe->Frame->pack(-fill => 'x', -anchor => 'nw'); $row1->Button( -text => get_translation('button_compile_opt'), + -font => $font, -command => sub { system "MakeOpt$ver.bat" }, -width => 18, )->pack(-side => 'left', -padx => 0, -pady => 0); $row1->Button( -text => '?', + -font => $font, -command => sub { do { confirm_box(get_translation('confirm_compile_opt')) } }, -width => 4, )->pack(-side => 'left', -padx => 2, -pady => 0); my $row2 = $lframe->Frame->pack(-fill => 'x', -anchor => 'nw'); $row2->Button( -text => get_translation('button_compile_vsai'), + -font => $font, -command => sub { system "MakeVAI$ver.bat" }, -width => 18, )->pack(-side => 'left', -padx => 0, -pady => 0); $row2->Button( -text => '?', + -font => $font, -command => sub { do { confirm_box(get_translation('confirm_compile_vsai')) } }, -width => 4, )->pack(-side => 'left', -padx => 2, -pady => 0); @@ -332,12 +357,14 @@ sub confirm_box { )->pack; # Placeholder $lframe->Label( -text => get_translation('placeholder_setlang'), + -font => $font, -width => 24, -height => 1, )->pack; $langopt = $lframe->Optionmenu( - -command => sub { set_language(@_); }, + -command => sub { set_language("@_"); }, -variable => \$language, + -font => $font, -width => 20, )->pack; $langopt -> addOptions(GetLanguages()); @@ -346,12 +373,14 @@ sub confirm_box { )->pack; # Placeholder $lframe->Label( -text => get_translation('placeholder_about'), + -font => $font, -width => 24, -height => 1, )->pack; $lframe->Button( -text => get_translation('button_about'), - -command => sub { + -font => $font, + -command => sub { my $url = "https://github.com/SMUnlimited/AMAI"; my $open_cmd = qq{start "" "$url"}; system($open_cmd); @@ -363,6 +392,7 @@ sub confirm_box { # )->pack; # Placeholder # $lframe->Button( # -text => get_translation('button_quit'), # no need +# -font => $font, # -command => [$main => 'destroy'], # -width => 24, # )->pack; @@ -711,10 +741,10 @@ sub EditStrat { close(TIERFILE); my $textheight = 44 / ($tiernum + 1); my @buildtexttier = (); - $lframe->Label(-text => get_translation('label_Init_code'))->pack; + $lframe->Label(-text => get_translation('label_Init_code'), -font => $font)->pack; my $inittext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; for(my $i=1;$i<=$tiernum;$i++) { - $lframe->Label(-text => get_translation('label_tier_code', "$i"))->pack; + $lframe->Label(-text => get_translation('label_tier_code', "$i"), -font => $font)->pack; $buildtexttier[$i] = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; } my $optarrayref = FillTable($strattable, $version, $race, @$strat[0]); @@ -906,7 +936,7 @@ sub FillTable { $translated_desc = $v; } } - $l = $strattable->Label(-text => $translated_desc, -anchor => 'e'); + $l = $strattable->Label(-text => $translated_desc, -font => $font, -anchor => 'e'); $strattable->put($i, 0, $l); $i++; } @@ -962,7 +992,7 @@ sub FillProfileTable { my $l; my $i = 0; foreach my $v (@opt) { - $l = $profiletable->Label(-text => get_translation($v), -anchor => 'e'); + $l = $profiletable->Label(-text => get_translation($v), -font => $font, -anchor => 'e'); $profiletable->put($i, 0, $l); $i++; } @@ -1120,9 +1150,9 @@ sub EditRacialBuilds { my $lframe = $edit->Frame->pack(-side => 'left'); my $rframe = $edit->Frame->pack(-side => 'right'); my $textheight = 22; - $lframe->Label(-text => get_translation('label_racial_Init_code'))->pack; + $lframe->Label(-text => get_translation('label_racial_Init_code'), -font => $font)->pack; my $inittext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; - $lframe->Label(-text => get_translation('label_racial_build'))->pack; + $lframe->Label(-text => get_translation('label_racial_build'), -font => $font)->pack; my $buildtext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; LoadRacialBuild($inittext, $buildtext, $ver, $race); $rframe->Button( @@ -1199,7 +1229,7 @@ sub LoadSettings { while() { chomp; my ($option, $value, $description) = split /\t/; - my $label_opt = $table->Label(-text => $option); + my $label_opt = $table->Label(-text => $option, -font => $font); $table->put($i, 0, $label_opt); my $entry_val = $table->Entry(-width => 25); $entry_val->insert('end', $value); @@ -1208,7 +1238,7 @@ sub LoadSettings { if ($translated_desc eq $option) { $translated_desc = $description; } - my $label_desc = $table->Label(-text => $translated_desc, -anchor => 'w'); + my $label_desc = $table->Label(-text => $translated_desc, -anchor => 'w', -font => $font); $table->put($i, 2, $label_desc); $i++; } diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt index cfd22ade0..759cbe409 100644 --- a/Languages/Chinese/StrategyManager.txt +++ b/Languages/Chinese/StrategyManager.txt @@ -46,7 +46,7 @@ err_not_file_sequence=策略文件丢失 err_not_file_profiles=档案文件丢失 message_remove_strategy=确定删除策略? message_remove_profile=确定删除档案? -confirm_compile_opt=编译经过优化的脚本,可稍微提升AI运行效率 +confirm_compile_opt=编译经过优化的脚本,可稍微提升AMAI运行效率 confirm_compile_vsai=单双数队伍分别为 AMAI 和 第三方AI (默认为暴雪官方AI) title_really=提示 title_strategy_manager=AMAI 策略管理器 @@ -55,15 +55,15 @@ title_strategy_editor=AMAI 策略编辑器 title_racial_builds_editor=AMAI 种族构筑编辑器 title_settings_editor=AMAI 参数编辑器 -sleep_multiplier=睡眠倍率,越高性能越好,性能与AI响应度反相关 -slm_start=多少AI才能开始增加睡眠倍率? -slm_end=多少AI才能停止增加睡眠倍率? -slm_start_mult=未达到开始增加的AI数量时,睡眠倍率是多少? -slm_end_mult=超过停止增加的AI数量时,睡眠倍率是多少? +sleep_multiplier=睡眠倍率,越高性能越好,性能与AMAI响应度反相关 +slm_start=多少AMAI才能开始增加睡眠倍率? +slm_end=多少AMAI才能停止增加睡眠倍率? +slm_start_mult=未达到开始增加的AMAI数量时,睡眠倍率是多少? +slm_end_mult=超过停止增加的AMAI数量时,睡眠倍率是多少? hero_radius=扫描英雄周围多少距离来判定英雄是否被敌人包围或有被包围的危险,以便逃离? -use_linear_upkeep_saving=AI是此时间内保持维修人口,还是在达到维护人口临界值时一次性保持? -repair_threshold=仅当AI拥有超过此数量的工人时,才会修理建筑物? -repair_threshold_threatened=只有当基地受到攻击且AI拥有超过该数量工人时,才会修理建筑物? +use_linear_upkeep_saving=AMAI是此时间内保持维修人口,还是在达到维护人口临界值时一次性保持? +repair_threshold=仅当AMAI拥有超过此数量的工人时,才会修理建筑物? +repair_threshold_threatened=只有当基地受到攻击且AMAI拥有超过该数量工人时,才会修理建筑物? max_follow_dist=飞艇跟随军队应保持多远距离? neutral_hero_time=中立英雄在多少秒后可用(时间需除以5) buy_distance=需要离商店多近才可以购买单位或物品? @@ -71,29 +71,29 @@ buy_timeout_large=英雄在前往商店时,最多持续多久?超时仍未 buy_timeout_small=英雄在商店购买时,最久会停留多久(秒)?主要是无库存时兜底 rp_strat_normal=构建数组重置周期,每隔此数值*5秒 build_array_reset_time=此值用于规范在优势时添加战略的优先级 -strategy_tier_bonus=如果AI的主城等级与特定策略相同,优先使用该策略的概率是多少? +strategy_tier_bonus=如果AMAI的主城等级与特定策略相同,优先使用该策略的概率是多少? attacking_strategy=攻击策略(与战术策略不同) -focus_fire_limit=如果敌方英雄的生命值低于战斗中远程攻击者的总和乘以此值,AI会集火该英雄 +focus_fire_limit=如果敌方英雄的生命值低于战斗中远程攻击者的总和乘以此值,AMAI会集火该英雄 focus_fire_ranged_dist=远程单位集火距离 focus_fire_melee_dist=近战单位集火距离 flee_health_percentage=单位生命值低于百分之几(0.25 即 百分之25)时要逃离战场? flee_minimum_health=单位生命值低于多少时要逃离战场? statue_distance=不死族雕像在战斗时应该保持多远? teleport_radius=使用回城卷轴时,回城英雄周围的单位应呆在多远? -gold_exchange_level=AI将超出此值的额外黄金给予其他需要金币的AI盟友 -wood_exchange_level=AI将超出此值的额外木材给予其他需要金币的AI盟友 -max_towns=AI最大该拥有几个基地??(以三种等级主城数量之和判断) -add_tag=在AI名称前添加[AMAI]标签? -add_skill=在AI名称后添加难度标签? +gold_exchange_level=AMAI将超出此值的额外黄金给予其他需要金币的AI盟友 +wood_exchange_level=AMAI将超出此值的额外木材给予其他需要金币的AI盟友 +max_towns=AMAI最大该拥有几个基地??(以三种等级主城数量之和判断) +add_tag=在AMAI名称前添加[AMAI]标签? +add_skill=在AMAI名称后添加难度标签? fav_hero_add=优先选择档案偏好英雄 -max_harass_groups=AI可以使用的多个骚扰组? -attacking_aggression=AI基础侵略值,值越高越激进。建议:-5到5 -expansion_radius=AI在开矿之前检查金矿附近怪物的半径 +max_harass_groups=AMAI可以使用的多个骚扰组? +attacking_aggression=AMAI基础侵略值,值越高越激进。建议:-5到5 +expansion_radius=AMAI在开矿之前检查金矿附近怪物的半径 harass_radius_attack_ranged=骚扰组进攻劣等敌方单位时,要与远程敌方单位有多远距离? harass_radius_attack_melee=骚扰组攻击劣等敌方单位时,要与近战敌方单位有多远距离? harass_radius_flee_ranged=骚扰组在距离远程敌方单位多远时逃跑? harass_radius_flee_melee=骚扰组在距离近战敌方单位多远时逃跑? -chatting=AI会发送聊天? +chatting=需要AMAI聊天(BB)吗? full_threat_distance=多远距离内的敌军被视为完全威胁? no_threat_distance=多远距离外的敌军不被视为威胁? distance_threat_exponent=随着敌军从无威胁距离转为完全威胁距离,威胁增加的速度是多少? @@ -113,8 +113,8 @@ teleport_high_threat_distance=在威胁级别较高时,军队在离基地多 teleport_army_min_strength=使用回城卷轴所需的军队规模 teleport_min_threat=允许使用回城卷轴的最低威胁级别 shredder_peon_count=一个伐木机的伐木效率相当于几个工人? -minimum_peon_wood=AI拥有多少木材后,不再在增加用于采集木材的工人数量? -maximum_peon_wood=AI拥有多少黄金后,不再在增加用于采集黄金的工人数量? +minimum_peon_wood=AMAI拥有多少木材后,不再在增加用于采集木材的工人数量? +maximum_peon_wood=AMAI拥有多少黄金后,不再在增加用于采集黄金的工人数量? ver_neutral_heroes_available=该版本是否有中立英雄? ver_neutral_hero_number=有多少位中立英雄? ver_only_heroes_buy=只有英雄能买单位或物品吗? @@ -130,21 +130,21 @@ ver_mercs_night_buy=在晚上购买雇佣兵不会惊醒野怪? ver_tower_check_radius=在目标周围多少范围内检测塔? ver_harass_tower_check_radius=在骚扰时,在多少范围内检测塔? ver_strat_change_enemy_strength_min=游戏中所有敌方玩家的最大强度都超此值时,才允许更改策略。 -destroy_buildings_on_defeat=AI的建筑在战败时应该被摧毁还是交给中立玩家? +destroy_buildings_on_defeat=AMAI的建筑在战败时应该被摧毁还是交给中立玩家? attack_reform_length=每次攻击时重新组建攻击组(获取新单位)的间隔为多少(秒/2)? front_base_distance=基地前哨位置距离出生点多远? ver_heroes=此版本英雄是否可用? -fixedcomputername=AI应该使用固定名称而不是档案名称? +fixedcomputername=AMAI应该使用固定名称而不是档案名称? green_creep_camp_strength_bonus=绿点野怪额外强度 orange_creep_camp_strength_bonus=黄点野怪额外强度 red_creep_camp_strength_bonus=红点野怪额外强度 debugging=打开调试模式?(DEBUG) strategy_change_threshold=新策略优先级必须大于当前策略几倍? disable_surrender=AMAI不该过早放弃游戏? -major_hero_skill_value=英雄选择第一技能的概率 -minor_hero_skill_value=英雄选择第二技能的概率 -rare_hero_skill_value=英雄选择第三技能的概率 -ver_optimal_gold=为档案最爱英雄添加多少概率? +major_hero_skill_value=英雄选择一技能的概率 +minor_hero_skill_value=英雄选择二技能的概率 +rare_hero_skill_value=英雄选择三技能的概率 +ver_optimal_gold=为档案偏好英雄添加多少概率? ver_flee_multiple1=每座黄金的采集最佳工人数量,默认为5 ver_flee_multiple1=最低侵略性下玩家强度的倍数,用于衡量是否允许AMAI逃跑 ver_flee_multiple2=最高侵略性下玩家强度的倍数,用于衡量是否允许AMAI逃跑 @@ -156,31 +156,31 @@ hero1_revive_prio=复活首英雄的优先级 hero2_revive_prio=复活第二英雄的优先级 hero3_revive_prio=复活第三英雄的优先级 prio_n_inc=建造所需建筑的额外优先级奖励 -prio_t_inc=按时间增加优先级 -priority increase in quantity=按数量增加优先级 -prio_q_inc=在距离人口上限多少时建造新的人口建筑? +prio_t_inc=按时间增加优先级奖励 +priority increase in quantity=按数量增加优先级奖励 +prio_q_inc=在距离可用人口上限多少时建造新的人口建筑? farm_food2=在已用人口接近可用人口时,建造人口建筑的优先级 farm_prio=建造人口建筑的优先级 peon_prio=建造工人的优先级 -expa_prio=开矿建筑的优先级 -expa_emergency_prio=在紧急情况下(当前矿场/矿场 + 自有资源即将耗尽)进行开矿的优先级 +expa_prio=开矿的优先级 +expa_emergency_prio=在紧急情况下(当前矿场/全部矿场 + 自有资源即将耗尽)开矿的优先级 expa_rebuild_prio=重建分基地的优先级 peon_1_mine_number=拥有1座金矿时的工人数量上限 peon_2_mines_number=拥有2座金矿时的工人数量上限 peon_mines_number=拥有更多金矿时的工人数量上限 min_peon_number_single_mine=拥有1座金矿时的工人数量下限 min_peon_number_double_mine=拥有2座金矿时的工人数量下限 -min_peon_number_multi_mine=拥有超过1个矿场时的工人数量下限 -strat_food_persistence=在当前策略持续爆人口的优先级(防止AI在拥有大量军队时变更策略) +min_peon_number_multi_mine=拥有更多金矿时的工人数量下限 +strat_food_persistence=在当前策略持续爆人口的优先级(防止AMAI在拥有大量军队时变更策略) relevant_strat_change_number=变更策略时可以选择几个最高优先级的策略? -kb_add1=已拥有的关键建筑增加多少优先级?(影响所有策略) -kb_add2=正在建造的关键建筑增加多少优先级?(影响所有策略) -kb_add3=已拥有和正在建造的关键建筑增加多少优先级?(影响所有策略) -kb_add4=第二关键建筑增加多少优先级?(影响所有策略) -ku_add1=第一关键科技增加多少优先级?(影响所有策略) -ku_add2=第二关键科技增加多少优先级?(影响所有策略) -ku_add3=第三关键科技增加多少优先级?(影响所有策略) -fav_unit_add=AI档案的偏好单位增加多少优先级?(影响所有策略) +kb_add1=已拥有的核心建筑增加多少优先级?(影响所有策略) +kb_add2=正在建造的核心建筑增加多少优先级?(影响所有策略) +kb_add3=已拥有和正在建造的核心建筑增加多少优先级?(影响所有策略) +kb_add4=第二核心建筑增加多少优先级?(影响所有策略) +ku_add1=第一核心科技增加多少优先级?(影响所有策略) +ku_add2=第二核心科技增加多少优先级?(影响所有策略) +ku_add3=第三核心科技增加多少优先级?(影响所有策略) +fav_unit_add=AMAI档案的偏好单位增加多少优先级?(影响所有策略) debug_strategy=该种族锁定此策略以便测试。(-1表示不锁定) race_use_fountain=该种族使用治疗之泉? race_manual_loading=该种族采金时需要将工人装载到金矿中,类似暗夜? @@ -197,7 +197,7 @@ race_tower_upgrade2=TR的塔的第二种升级是哪种单位?(辅助输出 race_tower_move=TR的塔可以移动吗,比如暗夜的树或星际人类建筑的飞行? race_tower_movestartstring=TR时开始塔移动的命令是哪个(填写命令字符串)?需加英文双引号 race_tower_moveendstring=TR时结束塔移动的命令是哪个(填写命令字符串)?需加英文双引号 -race_tower_bypeon=TR的塔是由工人变成的,像暗夜?设置后AI会额外补偿2个工人 +race_tower_bypeon=TR的塔是由工人变成的,像暗夜?设置后AMAI会额外补偿2个工人 race_tower_peon=TR要补偿多少造塔工人,由于亡灵是召唤建筑,可以设置得少些 race_towerrush_requirement=造塔需要哪种建筑?如伐木场或磨坊 race_towerrush_probability=TR的触发概率(百分比)是多少? @@ -212,7 +212,7 @@ race_no_wood_harvest=该种族没有专门的木材收集建筑吗?类似暗 race_ignore_injured=该种族会把受伤单位留在家吗? race_uses_mine_expansion=该种族是否使用矿盖开矿?类似亡灵 race_uses_shredder=该种族使用伐木机吗? -race_militia_available=该种族是否可以敲民兵民兵? +race_militia_available=该种族是否可以敲民兵? race_militia_max_distance=民兵允许离基地多远? race_militia_id=民兵是哪种单位? race_militia_ability=民兵的变身技能是哪个? @@ -239,11 +239,11 @@ race_towerrush_hero_rush_level=英雄必须拥有额外强度才TR(指定英 race_ancient_expansion_hero_rush_level=英雄必须拥有额外强度才古树开矿(指定英雄种类,与英雄属性无关) ghoul_prio=建造食尸鬼的优先级 race_min_ghouls=至少要造几个食尸鬼? -race_max_ghouls=在低木材时最多造几个食尸鬼? +race_max_ghouls=缺木材时最多造几个食尸鬼? groundid=探路单位是哪种?不能与该种族工人相同 racial_burrow=该种族哪种建筑可以通过装载工人或单位来攻击?类似地洞 structid=用于在投降时触发失败条件。 -race_ancient_barracks_rush_chance=如果种族有rushcreep标志且此值大于0,将增加古树开矿时优先攻击附近小怪营地的机会(使用standardunits的rushcreep标志) +race_ancient_barracks_rush_chance=如果种族有rushcreep标志(打野)且此值大于0,古树开矿时优先攻击附近小怪营地的概率会增加多少?(可在standardunits.txt中找到rushcreep标志) Strategy Function Name=策略名称(使用英文以确保翻译工作) Default Name=默认名称(使用英文以确保翻译工作) @@ -252,7 +252,7 @@ key_building1=第一个核心建筑 key_building2=第二个核心建筑 key_upgrade1=第一个核心科技 key_upgrade2=第二个核心科技 -key_unit=关键单位 +key_unit=核心单位 beginning_strat=初始策略 strat_minimum_time (in seconds/6)=策略最短时间(当前时间/6),按秒计 strategy_type=策略类型 @@ -307,23 +307,23 @@ Race=种族 Aggression=侵略性,建议-10~10 Uncertainty=不确定性,建议5~15 Minimum Attack Strength=最小攻击强度,建议6~9 -Build Farm at left food=偏好人口可用值,可用人口减已用人口小于该值时AI会优先建人口建筑,建议6~12 +Build Farm at left food=偏好人口可用值,可用人口减已用人口小于该值时AMAI会优先建人口建筑,建议6~12 first expansion time=开首矿时间,建议-10~10 second expansion time=开二矿时间,建议-20~20 strategy persistence=策略持久性,建议500~1500 influences number of factories built=考虑建造更多兵营,建议0.9~1.0 Taunt Rate=嘲讽概率,建议0~2 Expansion Target Bonus=进攻敌人分矿倾向,建议0~20 -Hard coded AI target bonus=AI进攻目标奖励(硬编码),建议0~20 -Hard coded AI target rate=AI进攻频率奖励(硬编码),建议0.3~0.8 -Surrender Value=投降偏好,越高越爱带投,建议0~4 -Favorite ELF Hero=最喜欢的暗夜英雄 -Favorite HUMAN Hero=最喜欢的人类英雄 -Favorite ORC Hero=最喜欢兽族英雄 -Favorite UNDEAD Hero=最喜欢的亡灵英雄 -Favorite Neutral Hero=最喜欢的中立英雄 -Favorite ELF Unit=最喜欢的暗夜单位 -Favorite HUMAN Unit=最喜欢的人类单位 -Favorite ORC Unit=最喜欢兽族单位 -Favorite UNDEAD Unit=最喜欢的亡灵单位 +Hard coded AI target bonus=AMAI进攻目标奖励(硬编码),建议0~20 +Hard coded AI target rate=AMAI进攻频率奖励(硬编码),建议0.3~0.8 +Surrender Value=投降倾向,越高越爱投,建议0~4 +Favorite ELF Hero=最爱的暗夜英雄 +Favorite HUMAN Hero=最爱的人类英雄 +Favorite ORC Hero=最爱兽族英雄 +Favorite UNDEAD Hero=最爱的亡灵英雄 +Favorite Neutral Hero=最爱的中立英雄 +Favorite ELF Unit=最爱的暗夜单位 +Favorite HUMAN Unit=最爱的人类单位 +Favorite ORC Unit=最爱兽族单位 +Favorite UNDEAD Unit=最爱的亡灵单位 Rare Profile=稀有档案,0为普通,1为稀有 \ No newline at end of file From 118ab2e620855c5454286a6484b43d2f21467b29 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Wed, 12 Feb 2025 21:37:52 +0800 Subject: [PATCH 18/42] Add files via upload --- AMAIStrategyManager.pl | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 4089ae39a..cc732c67a 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -11,8 +11,8 @@ BEGIN{ if($^O eq 'MSWin32'){ - require Win32::Console; - #Win32::Console::Free(); + require Win32::Console; + #Win32::Console::Free(); } } @@ -64,7 +64,6 @@ sub load_language { my ($key, $value) = split '=', $_, 2; unless (defined $key && defined $value) { warn "Invalid line format in language file at line $.: $_"; - print 11; next; } # $key =~ s/^\s+|\s+$//g; @@ -72,7 +71,7 @@ sub load_language { $keylang{$key} = $value; } close LANG; - print \%keylang; + print \%keylang; $lang_data_cache{$lang_file} = \%keylang; return \%keylang; } @@ -88,9 +87,9 @@ sub get_translation { return sprintf($lang_ref->{$key}, @args); } if (@args) { - return join(@args) . " $key"; + return join(@args) . " $key"; } else { - return $key; + return $key; } } @@ -104,6 +103,7 @@ sub get_translation { my $profile; my $rframe = $main->Frame->pack(-side => 'right'); my $font = $main->Font(-family => "Segoe UI", -size => 10, -weight => 'normal'); + my $notebook = $rframe->NoteBook()->pack(-side => 'left'); $notebook->configure(-font => ['Segoe UI', 12]); my $stratframe = $notebook->add("strat", -label => get_translation('label_strategies')); @@ -112,7 +112,7 @@ sub get_translation { -scrollbars => 'se', -height => 0, )->pack(-fill => 'both', -expand => 1); -tie $strat, "Tk::Listbox", $stratlb; + my $profilelb = $profileframe->Scrolled('Listbox', -scrollbars => 'se', -height => 0, From da6e3e459c54e9a2726dcecdc3b616c4365c539e Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Wed, 12 Feb 2025 23:29:25 +0800 Subject: [PATCH 19/42] Add files via upload --- Languages/StrategyManager.txt | 329 ++++++++++++++++++++++++++++++++++ 1 file changed, 329 insertions(+) create mode 100644 Languages/StrategyManager.txt diff --git a/Languages/StrategyManager.txt b/Languages/StrategyManager.txt new file mode 100644 index 000000000..539320d71 --- /dev/null +++ b/Languages/StrategyManager.txt @@ -0,0 +1,329 @@ +button_new=新建 +button_extract=导出 +button_insert=导入 +button_copy=复制 +button_remove=删除 +button_edit=编辑 +button_lock=锁定 +button_unlock=解锁 +button_quit=退出 +button_edit_racial_builds=编辑种族构筑 +button_edit_global=编辑全局参数 +button_edit_racial_settings=编辑种族参数 +button_compile=常规 +button_compile_opt=优化 +button_compile_vsai=vs 暴雪AI +button_ok=提交 +button_cancel=取消 +button_yes=确定 +button_about=访问官网 +placeholder_operate=- 操作 - +placeholder_ver=- 版本与种族 - +placeholder_set=- 全局设置 - +placeholder_raceset=- 种族设置 - +placeholder_compile=- 编译脚本 - +placeholder_setlang=- 管理器语言 - +placeholder_about=- 关于 - +label_strategies=策略 +label_profiles=档案 +label_Init_code=策略初始化设置 +label_tier_code=%s 本基地训练/研究逻辑 +label_racial_Init_code=全局限制 +label_racial_build=全局训练/研究逻辑 +err_file_not_writing=%s 文件不能写入,可能是文件丢失或被其他程序占用! +err_strategy_not_found_ai=AI文件中找不到策略 +err_strategy_not_found_strategy=策略表中找不到策略 +err_strategy_not_found_buildsequence=构筑表中找不到策略 +err_strategy_not_complete=策略未完成 +err_strategy_not_complete_ai=该AI文件的策略尚未完成 +err_strategy_init_not_set=种族构筑未初始化 +err_strategy_init_not_complete=种族构筑未完成 +err_strategy_build_set=种族构筑未设置 +err_strategy_build_complete=种族构筑未完成 +err_global_build_set=种族构筑未完成 +err_profile_not_found_profiles=档案表中找不到该档案 +err_not_file_sequence=策略文件丢失 +err_not_file_profiles=档案文件丢失 +message_remove_strategy=确定删除策略? +message_remove_profile=确定删除档案? +confirm_compile_opt=编译经过优化的脚本,可稍微提升AMAI运行效率 +confirm_compile_vsai=单双数队伍分别为 AMAI 和 第三方AI (默认为暴雪官方AI) +title_really=提示 +title_strategy_manager=AMAI 策略管理器 +title_profile_editor=AMAI 档案编辑器 +title_strategy_editor=AMAI 策略编辑器 +title_racial_builds_editor=AMAI 种族构筑编辑器 +title_settings_editor=AMAI 参数编辑器 + +sleep_multiplier=睡眠倍率,越高性能越好,性能与AMAI响应度反相关 +slm_start=多少AMAI才能开始增加睡眠倍率? +slm_end=多少AMAI才能停止增加睡眠倍率? +slm_start_mult=未达到开始增加的AMAI数量时,睡眠倍率是多少? +slm_end_mult=超过停止增加的AMAI数量时,睡眠倍率是多少? +hero_radius=扫描英雄周围多少距离来判定英雄是否被敌人包围或有被包围的危险,以便逃离? +use_linear_upkeep_saving=AMAI是此时间内保持维修人口,还是在达到维护人口临界值时一次性保持? +repair_threshold=仅当AMAI拥有超过此数量的工人时,才会修理建筑物? +repair_threshold_threatened=只有当基地受到攻击且AMAI拥有超过该数量工人时,才会修理建筑物? +max_follow_dist=飞艇跟随军队应保持多远距离? +neutral_hero_time=中立英雄在多少秒后可用(时间需除以5) +buy_distance=需要离商店多近才可以购买单位或物品? +buy_timeout_large=英雄在前往商店时,最多持续多久?超时仍未达到会放弃本次购买 +buy_timeout_small=英雄在商店购买时,最久会停留多久(秒)?主要是无库存时兜底 +rp_strat_normal=构建数组重置周期,每隔此数值*5秒 +build_array_reset_time=此值用于规范在优势时添加战略的优先级 +strategy_tier_bonus=如果AMAI的主城等级与特定策略相同,优先使用该策略的概率是多少? +attacking_strategy=攻击策略(与战术策略不同) +focus_fire_limit=如果敌方英雄的生命值低于战斗中远程攻击者的总和乘以此值,AMAI会集火该英雄 +focus_fire_ranged_dist=远程单位集火距离 +focus_fire_melee_dist=近战单位集火距离 +flee_health_percentage=单位生命值低于百分之几(0.25 即 百分之25)时要逃离战场? +flee_minimum_health=单位生命值低于多少时要逃离战场? +statue_distance=不死族雕像在战斗时应该保持多远? +teleport_radius=使用回城卷轴时,回城英雄周围的单位应呆在多远? +gold_exchange_level=AMAI将超出此值的额外黄金给予其他需要金币的AI盟友 +wood_exchange_level=AMAI将超出此值的额外木材给予其他需要金币的AI盟友 +max_towns=AMAI最大该拥有几个基地??(以三种等级主城数量之和判断) +add_tag=在AMAI名称前添加[AMAI]标签? +add_skill=在AMAI名称后添加难度标签? +fav_hero_add=优先选择档案偏好英雄 +max_harass_groups=AMAI可以使用的多个骚扰组? +attacking_aggression=AMAI基础侵略值,值越高越激进。建议:-5到5 +expansion_radius=AMAI在开矿之前检查金矿附近怪物的半径 +harass_radius_attack_ranged=骚扰组进攻劣等敌方单位时,要与远程敌方单位有多远距离? +harass_radius_attack_melee=骚扰组攻击劣等敌方单位时,要与近战敌方单位有多远距离? +harass_radius_flee_ranged=骚扰组在距离远程敌方单位多远时逃跑? +harass_radius_flee_melee=骚扰组在距离近战敌方单位多远时逃跑? +chatting=需要AMAI聊天(BB)吗? +full_threat_distance=多远距离内的敌军被视为完全威胁? +no_threat_distance=多远距离外的敌军不被视为威胁? +distance_threat_exponent=随着敌军从无威胁距离转为完全威胁距离,威胁增加的速度是多少? +distance_threat_mult=当敌军接近时,对基地的威胁值增加多少?值越高威胁越大 +atl_time_start=此值威胁级别开始增加 +atl_time_end=此值威胁级别结束增加 +atl_time_start_val=威胁级别初始值 +atl_time_end_val=威胁级别终值 +atl_enemy_start=威胁级别倍数在敌军数量达到该值时增加 +atl_enemy_end=威胁级别倍数在敌军数量达到该值时不再增加 +atl_enemy_start_mult=威胁级别倍数初始值 +atl_enemy_end_mult=威胁级别倍数终值 +teleport_low_threat=在威胁级别较低时,如果威胁级别大于此值,军队使用回城卷轴 +teleport_high_threat=在威胁级别较高时,如果威胁级别大于此值,军队使用回城卷轴 +teleport_low_threat_distance=在威胁级别较低时,军队在离基地多近时不使用回城卷轴? +teleport_high_threat_distance=在威胁级别较高时,军队在离基地多近时不使用回城卷轴? +teleport_army_min_strength=使用回城卷轴所需的军队规模 +teleport_min_threat=允许使用回城卷轴的最低威胁级别 +shredder_peon_count=一个伐木机的伐木效率相当于几个工人? +minimum_peon_wood=AMAI拥有多少木材后,不再在增加用于采集木材的工人数量? +maximum_peon_wood=AMAI拥有多少黄金后,不再在增加用于采集黄金的工人数量? +ver_neutral_heroes_available=该版本是否有中立英雄? +ver_neutral_hero_number=有多少位中立英雄? +ver_only_heroes_buy=只有英雄能买单位或物品吗? +ver_food_limit=该版本的人口上限是多少? +normal_battle_radius=单位的常规仇恨距离是多少? +creep_battle_radius=野怪的仇恨距离是多少? +expansion_taken_radius=敌方建筑必须离矿点多近才能让AMAI识别为已被占领? +ver_hero_base_value=英雄的基础强度是多少(实际强度为等级加上基础强度)? +ver_hero_ultimate_level=英雄在几级可以学大招? +ver_hero_ultimate_value=大招会给英雄增加多少额外强度? +ver_creeps_attack_buildings_dist=野怪攻击建筑物的距离是多少? +ver_mercs_night_buy=在晚上购买雇佣兵不会惊醒野怪? +ver_tower_check_radius=在目标周围多少范围内检测塔? +ver_harass_tower_check_radius=在骚扰时,在多少范围内检测塔? +ver_strat_change_enemy_strength_min=游戏中所有敌方玩家的最大强度都超此值时,才允许更改策略。 +destroy_buildings_on_defeat=AMAI的建筑在战败时应该被摧毁还是交给中立玩家? +attack_reform_length=每次攻击时重新组建攻击组(获取新单位)的间隔为多少(秒/2)? +front_base_distance=基地前哨位置距离出生点多远? +ver_heroes=此版本英雄是否可用? +fixedcomputername=AMAI应该使用固定名称而不是档案名称? +green_creep_camp_strength_bonus=绿点野怪额外强度 +orange_creep_camp_strength_bonus=黄点野怪额外强度 +red_creep_camp_strength_bonus=红点野怪额外强度 +debugging=打开调试模式?(DEBUG) +strategy_change_threshold=新策略优先级必须大于当前策略几倍? +disable_surrender=AMAI不该过早放弃游戏? +major_hero_skill_value=英雄选择一技能的概率 +minor_hero_skill_value=英雄选择二技能的概率 +rare_hero_skill_value=英雄选择三技能的概率 +ver_optimal_gold=为档案偏好英雄添加多少概率? +ver_flee_multiple1=每座黄金的采集最佳工人数量,默认为5 +ver_flee_multiple1=最低侵略性下玩家强度的倍数,用于衡量是否允许AMAI逃跑 +ver_flee_multiple2=最高侵略性下玩家强度的倍数,用于衡量是否允许AMAI逃跑 +ver_flee_multiple3=最高侵略度下玩家强度的倍数,用于衡量AMAI是否会逃跑 +ver_low_aggression=侵略性低于多少时,使用最低强度的逃跑倍数 +ver_high_aggression=侵略性高于多少时,使用最高强度的逃跑倍数 + +hero1_revive_prio=复活首英雄的优先级 +hero2_revive_prio=复活第二英雄的优先级 +hero3_revive_prio=复活第三英雄的优先级 +prio_n_inc=建造所需建筑的额外优先级奖励 +prio_t_inc=按时间增加优先级奖励 +priority increase in quantity=按数量增加优先级奖励 +prio_q_inc=在距离可用人口上限多少时建造新的人口建筑? +farm_food2=在已用人口接近可用人口时,建造人口建筑的优先级 +farm_prio=建造人口建筑的优先级 +peon_prio=建造工人的优先级 +expa_prio=开矿的优先级 +expa_emergency_prio=在紧急情况下(当前矿场/全部矿场 + 自有资源即将耗尽)开矿的优先级 +expa_rebuild_prio=重建分基地的优先级 +peon_1_mine_number=拥有1座金矿时的工人数量上限 +peon_2_mines_number=拥有2座金矿时的工人数量上限 +peon_mines_number=拥有更多金矿时的工人数量上限 +min_peon_number_single_mine=拥有1座金矿时的工人数量下限 +min_peon_number_double_mine=拥有2座金矿时的工人数量下限 +min_peon_number_multi_mine=拥有更多金矿时的工人数量下限 +strat_food_persistence=在当前策略持续爆人口的优先级(防止AMAI在拥有大量军队时变更策略) +relevant_strat_change_number=变更策略时可以选择几个最高优先级的策略? +kb_add1=已拥有的核心建筑增加多少优先级?(影响所有策略) +kb_add2=正在建造的核心建筑增加多少优先级?(影响所有策略) +kb_add3=已拥有和正在建造的核心建筑增加多少优先级?(影响所有策略) +kb_add4=第二核心建筑增加多少优先级?(影响所有策略) +ku_add1=第一核心科技增加多少优先级?(影响所有策略) +ku_add2=第二核心科技增加多少优先级?(影响所有策略) +ku_add3=第三核心科技增加多少优先级?(影响所有策略) +fav_unit_add=AMAI档案的偏好单位增加多少优先级?(影响所有策略) +debug_strategy=该种族锁定此策略以便测试。(-1表示不锁定) +race_use_fountain=该种族使用治疗之泉? +race_manual_loading=该种族采金时需要将工人装载到金矿中,类似暗夜? +race_manual_loading_wisp=哪种工人单位要装载到金矿中? +race_manual_loading_mine=哪种金矿装载工人? +race_towerrush_available=该种族是否可以TR? +race_tower_item=TR有辅助物品吗?如头骨制造腐地或哨塔,仅支持大写英文 +race_tower_item_must=TR必须购买辅助物品吗(如腐地)? +race_tower_item_quantity=TR最多可以拥有多少辅助物品? +race_tower_id=TR的塔是哪种单位? +race_tower_id_replace=TR时不能创建腐地,如果建筑需要建造在腐地上,应设置替换单位,哪种单位可以替换? +race_tower_upgrade1=TR的塔的第一种升级是哪种单位?(核心输出) +race_tower_upgrade2=TR的塔的第二种升级是哪种单位?(辅助输出) +race_tower_move=TR的塔可以移动吗,比如暗夜的树或星际人类建筑的飞行? +race_tower_movestartstring=TR时开始塔移动的命令是哪个(填写命令字符串)?需加英文双引号 +race_tower_moveendstring=TR时结束塔移动的命令是哪个(填写命令字符串)?需加英文双引号 +race_tower_bypeon=TR的塔是由工人变成的,像暗夜?设置后AMAI会额外补偿2个工人 +race_tower_peon=TR要补偿多少造塔工人,由于亡灵是召唤建筑,可以设置得少些 +race_towerrush_requirement=造塔需要哪种建筑?如伐木场或磨坊 +race_towerrush_probability=TR的触发概率(百分比)是多少? +race_militia_expansion_available=该种族开矿时可以敲民兵吗? +race_hero_number=该种族有多少位本族英雄? +race_simple_melee=基础近战单位,使用基础近战策略时必须填写 +race_advanced_melee=高级近战单位,使用基础近战策略时必须填写 +race_has_ghouls=该种族有兼顾伐木和战斗的单位吗,类似食尸鬼? +race_ghouls_attack=兼顾伐木和战斗的单位会加入军队吗? +race_has_power_build=该种族的工人多敲建筑吗?类似人族 +race_no_wood_harvest=该种族没有专门的木材收集建筑吗?类似暗夜 +race_ignore_injured=该种族会把受伤单位留在家吗? +race_uses_mine_expansion=该种族是否使用矿盖开矿?类似亡灵 +race_uses_shredder=该种族使用伐木机吗? +race_militia_available=该种族是否可以敲民兵? +race_militia_max_distance=民兵允许离基地多远? +race_militia_id=民兵是哪种单位? +race_militia_ability=民兵的变身技能是哪个? +race_militia_hall_ability=大厅号召民兵的技能是哪个? +race_militia_unitstring=民兵的变身技能命令字符串是什么?需加英文双引号 +race_militiaworker_unitstring=民兵单位的单位字符串是什么?需加英文双引号 +use_militia_only_on_bigger_threats=仅在遭受较大威胁时才使用民兵? +race_ancient_expansion_available=该种族的建筑可以站起来协防?类似暗夜 +race_ancient_expansion_probability=该种族使用古树开矿的概率(百分比)是多少? +race_ancient_expansion_strength=该种族使用古树开矿的分矿野怪强度最大是多少(已弃用)? +race_ancient_expansion_help_id=哪种单位可替代古树开矿? +race_item_expansion_available=该种族可以使用物品开矿吗?如迷你大厅 +race_item_expansion_probability=使用物品开矿的概率(百分比)是多少? +race_item_sale_level=购买开矿物品需要多少级主基地? +race_item_expansion_item_id=开矿物品是哪个? +race_sell_ziggurats=该种族会出售无用的分矿通灵塔/冰塔/幽魂塔? +race_ziggurat_keep_distance=如果这个通灵塔/冰塔/幽魂塔多少距离内有另一个建筑(除了通灵塔/冰塔/幽魂塔),则不卖 +race_build_farms_front=该种族应在基地前方哨点建造人口建筑(确定哨点后)? +race_farms_front_limit=基地前方哨点的人口建筑最多可以造几个? +race_farms_at_mine=该种族应优先在金矿附近建造几个人口建筑? +race_max_expa_mine_distance=分矿与分基地之间的最大距离是? +race_has_moonwells=该种族的人口建筑拥有治疗光环? +race_towerrush_hero_rush_level=英雄必须拥有额外强度才TR(指定英雄种类,与英雄属性无关) +race_ancient_expansion_hero_rush_level=英雄必须拥有额外强度才古树开矿(指定英雄种类,与英雄属性无关) +ghoul_prio=建造食尸鬼的优先级 +race_min_ghouls=至少要造几个食尸鬼? +race_max_ghouls=缺木材时最多造几个食尸鬼? +groundid=探路单位是哪种?不能与该种族工人相同 +racial_burrow=该种族哪种建筑可以通过装载工人或单位来攻击?类似地洞 +structid=用于在投降时触发失败条件。 +race_ancient_barracks_rush_chance=如果种族可以BR(暗夜)且此值大于0,BR打野的概率会增加多少?(可在standardunits.txt中找到rushcreep标志) + +Strategy Function Name=策略名称(使用英文以确保翻译工作) +Default Name=默认名称(使用英文以确保翻译工作) +Default Report=默认策略报告(使用英文以确保翻译工作) +key_building1=第一个核心建筑 +key_building2=第二个核心建筑 +key_upgrade1=第一个核心科技 +key_upgrade2=第二个核心科技 +key_unit=核心单位 +beginning_strat=初始策略 +strat_minimum_time (in seconds/6)=策略最短时间(当前时间/6),按秒计 +strategy_type=策略类型 +main_strategy_tier=策略核心主城等级 +base rp=基础资源点 +ally bonus=盟友加成 +1on1 bonus=1V1加成 +FFA bonus=混战加成 +random enemy bonus=对阵随机种族加成 +ELF enemy bonus=对阵暗夜加成 +HUMAN enemy bonus=对阵人类加成 +ORC enemy bonus=对阵兽族加成 +UNDEAD enemy bonus=对阵亡灵加成 +ELF ally bonus=暗夜盟友加成 +HUMAN ally bonus=人类盟友加成 +ORC ally bonus=兽族盟友加成 +UNDEAD ally bonus=亡灵盟友加成 +anti air strength=反制空军强度 +anti casters strength=反制施法者强度 +anti towers strength=反制塔强度 +anti piercing strength=反制穿刺强度 +anti normal strength=反制普通强度 +anti siege strength=反制攻城强度 +anti magic strength=反制魔法强度 +anti unarmored strength=反无甲强度 +anti lightarmor strength=反轻甲强度 +anti mediumarmor strength=反中甲强度 +anti heavyarmor strength=反重甲强度 +expansion time=开首矿时间 +second expansion time=开二矿时间 +first hero bonus=首发哪位英雄有加成 +first hero bonus amount=首发英雄加成值 +second hero bonus=二发哪位英雄有加成 +second hero bonus amount=二发英雄加成值 +third hero bonus=三发哪位英雄有加成 +third hero bonus amount=三发英雄加成值 +enemy_ELF add agg t1=1本对敌暗夜侵略性额外加成 +enemy_ELF add agg t2=2本对敌暗夜侵略性额外加成 +enemy_ELF add agg t3=3本对敌暗夜侵略性额外加成 +enemy_HUMAN add agg t1=1本对敌人类侵略性额外加成 +enemy_HUMAN add agg t2=2本对敌人类侵略性额外加成 +enemy_HUMAN add agg t3=3本对敌人类侵略性额外加成 +enemy_ORC add agg t1=1本对敌兽族侵略性额外加成 +enemy_ORC add agg t2=2本对敌兽族侵略性额外加成 +enemy_ORC add agg t3=3本对敌兽族侵略性额外加成 +enemy_UNDEAD add agg t1=1本对敌亡灵侵略性额外加成 +enemy_UNDEAD add agg t2=2本对敌亡灵侵略性额外加成 +enemy_UNDEAD add agg t3=3本对敌亡灵侵略性额外加成 + +Profile Name=档案名称 +Race=种族 +Aggression=侵略性,建议-10~10 +Uncertainty=不确定性,建议5~15 +Minimum Attack Strength=最小攻击强度,建议6~9 +Build Farm at left food=偏好人口可用值,可用人口减已用人口小于该值时AMAI会优先建人口建筑,建议6~12 +first expansion time=开首矿时间,建议-10~10 +second expansion time=开二矿时间,建议-20~20 +strategy persistence=策略持久性,建议500~1500 +influences number of factories built=考虑建造更多兵营,建议0.9~1.0 +Taunt Rate=嘲讽概率,建议0~2 +Expansion Target Bonus=进攻敌人分矿倾向,建议0~20 +Hard coded AI target bonus=AMAI进攻目标奖励(硬编码),建议0~20 +Hard coded AI target rate=AMAI进攻频率奖励(硬编码),建议0.3~0.8 +Surrender Value=投降倾向,越高越爱投,建议0~4 +Favorite ELF Hero=最爱的暗夜英雄 +Favorite HUMAN Hero=最爱的人类英雄 +Favorite ORC Hero=最爱兽族英雄 +Favorite UNDEAD Hero=最爱的亡灵英雄 +Favorite Neutral Hero=最爱的中立英雄 +Favorite ELF Unit=最爱的暗夜单位 +Favorite HUMAN Unit=最爱的人类单位 +Favorite ORC Unit=最爱兽族单位 +Favorite UNDEAD Unit=最爱的亡灵单位 +Rare Profile=稀有档案,0为普通,1为稀有 \ No newline at end of file From 589caf273a4a1b86ad3958706ef6b68c02ac7de3 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 2 Mar 2025 21:44:39 +0800 Subject: [PATCH 20/42] Add files via upload --- AMAIStrategyManager.pl | 1 - 1 file changed, 1 deletion(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index cc732c67a..ca504277f 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -71,7 +71,6 @@ sub load_language { $keylang{$key} = $value; } close LANG; - print \%keylang; $lang_data_cache{$lang_file} = \%keylang; return \%keylang; } From 562d7e0dd0caecacc4d501e43975d86589645c81 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 2 Mar 2025 22:08:44 +0800 Subject: [PATCH 21/42] Add files via upload --- AMAIStrategyManager.pl | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index ca504277f..94341536a 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -111,7 +111,7 @@ sub get_translation { -scrollbars => 'se', -height => 0, )->pack(-fill => 'both', -expand => 1); - +tie $strat, "Tk::Listbox", $stratlb; my $profilelb = $profileframe->Scrolled('Listbox', -scrollbars => 'se', -height => 0, @@ -749,11 +749,11 @@ sub EditStrat { my $optarrayref = FillTable($strattable, $version, $race, @$strat[0]); FillTexts($inittext, \@buildtexttier, $version, $race, @$strat[0]); $bframe->Button( - -text => get_translation('button_ok'), + (-text => get_translation('button_ok'), -font => $font), -command => sub {SaveStrat($edit, $inittext, \@buildtexttier, $strattable, $version, $race, @$strat[0], $optarrayref)}, -width => 14)->pack; $bframe->Button( - -text => get_translation('button_cancel'), + (-text => get_translation('button_cancel'), -font => $font), -command => [$edit => 'destroy'], -width => 14)->pack; $edit->focusForce; @@ -767,11 +767,11 @@ sub EditProfile { my $profiletable = $edit->Table(-rows => 37)->pack(-side => 'left'); my $optarrayref = FillProfileTable($profiletable, $version, @$profile[0]); $bframe->Button( - -text => get_translation('button_ok'), + (-text => get_translation('button_ok'), -font => $font), -command => sub {SaveProfile($edit, $profiletable, $version, @$profile[0], $optarrayref)}, -width => 14)->pack; $bframe->Button( - -text => get_translation('button_cancel'), + (-text => get_translation('button_cancel'), -font => $font), -command => [$edit => 'destroy'], -width => 14)->pack; $edit->focusForce; @@ -1155,11 +1155,11 @@ sub EditRacialBuilds { my $buildtext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; LoadRacialBuild($inittext, $buildtext, $ver, $race); $rframe->Button( - -text => get_translation('button_ok'), + (-text => get_translation('button_ok'), -font => $font), -command => sub {SaveRacialBuild($edit, $inittext, $buildtext, $ver, $race)}, -width => 14)->pack; $rframe->Button( - -text => get_translation('button_cancel'), + (-text => get_translation('button_cancel'), -font => $font), -command => [$edit => 'destroy'], -width => 14)->pack; $edit->focusForce; @@ -1210,11 +1210,11 @@ sub EditSettings { my $table = $lframe->Table(-rows => 37)->pack(-side => 'left'); my $rownumber = LoadSettings($table, $file); $rframe->Button( - -text => get_translation('button_ok'), + (-text => get_translation('button_ok'), -font => $font), -command => sub {SaveSettings($edit, $table, $file, $rownumber)}, -width => 14)->pack; $rframe->Button( - -text => get_translation('button_cancel'), + (-text => get_translation('button_cancel'), -font => $font), -command => [$edit => 'destroy'], -width => 14)->pack; $edit->focusForce; From 529ee2396dd3f2df85d473145eed5c6dd3633478 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Mon, 3 Mar 2025 21:51:00 +0800 Subject: [PATCH 22/42] Add files via upload --- AMAIStrategyManager.pl | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 94341536a..fecce7f67 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -668,7 +668,11 @@ sub InsertStratSub { $x++; $stratname = "$oldstratname$x"; } - + my $needs_newline = 0; + seek(STRATFILE, -1, 2); + my $last_char; + read(STRATFILE, $last_char, 1); + $needs_newline = 1 if $last_char ne "\n"; $line =~ s/^$oldstratname/$stratname/; print STRATFILE $line; print AIFILE "\n"; @@ -697,8 +701,14 @@ sub InsertProfileSub { my $profilelist = join ',', GetProfileList($version); open(SOURCE, $filename) or do { confirm_box(get_translation('err_file_not_writing', "<$filename>")) }; open(PROFILEFILE, ">>$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; + my $needs_newline = 0; + seek(PROFILEFILE, -1, 2); + my $last_char; + read(PROFILEFILE, $last_char, 1); + $needs_newline = 1 if $last_char ne "\n"; + print PROFILEFILE "\n" if $needs_newline; my $line = ; - if ($line !~ /#AMAI 2.0 Profile/) {die get_translation('err_not_file_profiles') }; + if ($line !~ /#AMAI 2.0 Profile/) {die get_translation('err_not_file_profiles');} $line = ; $line =~ /^([^\t]*)\t/; my $oldprofilename = $1; @@ -710,7 +720,7 @@ sub InsertProfileSub { } $line =~ s/^$oldprofilename/$profilename/; - print PROFILEFILE $line; + print PROFILEFILE $line ; close(PROFILEFILE); close(SOURCE); } From cc6afb683d40e190a7e2df79813958f199b3639b Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Wed, 5 Mar 2025 00:23:57 +0800 Subject: [PATCH 23/42] Add files via upload --- Languages/Chinese/StrategyManager.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt index 759cbe409..2de0ae5f1 100644 --- a/Languages/Chinese/StrategyManager.txt +++ b/Languages/Chinese/StrategyManager.txt @@ -243,7 +243,7 @@ race_max_ghouls=缺木材时最多造几个食尸鬼? groundid=探路单位是哪种?不能与该种族工人相同 racial_burrow=该种族哪种建筑可以通过装载工人或单位来攻击?类似地洞 structid=用于在投降时触发失败条件。 -race_ancient_barracks_rush_chance=如果种族有rushcreep标志(打野)且此值大于0,古树开矿时优先攻击附近小怪营地的概率会增加多少?(可在standardunits.txt中找到rushcreep标志) +race_ancient_barracks_rush_chance=如果种族可以BR(暗夜)且此值大于0,BR打野的概率会增加多少?(可在standardunits.txt中找到rushcreep标志) Strategy Function Name=策略名称(使用英文以确保翻译工作) Default Name=默认名称(使用英文以确保翻译工作) @@ -253,7 +253,7 @@ key_building2=第二个核心建筑 key_upgrade1=第一个核心科技 key_upgrade2=第二个核心科技 key_unit=核心单位 -beginning_strat=初始策略 +beginning_strat=策略在开局即可选择? strat_minimum_time (in seconds/6)=策略最短时间(当前时间/6),按秒计 strategy_type=策略类型 main_strategy_tier=策略核心主城等级 From 37caefb4451910f1aa5770a583ec092ca6845c2e Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Wed, 5 Mar 2025 00:54:10 +0800 Subject: [PATCH 24/42] Add files via upload --- AMAIStrategyManager.pl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index fecce7f67..e69e8ca8e 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -718,7 +718,6 @@ sub InsertProfileSub { $x++; $profilename = "$oldprofilename$x"; } - $line =~ s/^$oldprofilename/$profilename/; print PROFILEFILE $line ; close(PROFILEFILE); @@ -743,15 +742,18 @@ sub EditStrat { my $lframe = $edit->Frame->pack(-side => 'left'); my $rframe = $edit->Frame->pack(-side => 'right'); my $bframe = $rframe->Frame->pack(-side => 'right'); - my $strattable = $rframe->Table(-rows => 37)->pack(-side => 'left'); + my $strattable = $rframe->Table(-rows => 40)->pack(-side => 'left'); open(TIERFILE, "$ver\\$race\\Tiers.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\$race\\Tiers.txt>")) }; my @tiers = ; my $tiernum = @tiers; close(TIERFILE); - my $textheight = 44 / ($tiernum + 1); + my $textheight = 48 / ($tiernum + 1); my @buildtexttier = (); + $lframe->Label(-text => get_translation('label_strategies') . " @$strat[0]", -font => $font)->pack; + $lframe->Label(-height => 2,)->pack; # Placeholder $lframe->Label(-text => get_translation('label_Init_code'), -font => $font)->pack; my $inittext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; + $lframe->Label(-height => 2,)->pack; # Placeholder for(my $i=1;$i<=$tiernum;$i++) { $lframe->Label(-text => get_translation('label_tier_code', "$i"), -font => $font)->pack; $buildtexttier[$i] = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; @@ -774,7 +776,7 @@ sub EditProfile { return unless @$profile[0]; my $edit = $main->Toplevel(-title => get_translation('title_profile_editor')); my $bframe = $edit->Frame->pack(-side => 'right'); - my $profiletable = $edit->Table(-rows => 37)->pack(-side => 'left'); + my $profiletable = $edit->Table(-rows => 40)->pack(-side => 'left'); my $optarrayref = FillProfileTable($profiletable, $version, @$profile[0]); $bframe->Button( (-text => get_translation('button_ok'), -font => $font), From 5b322a8f8d5081364fa4786d57c677e0a8faa568 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Wed, 5 Mar 2025 02:18:38 +0800 Subject: [PATCH 25/42] Add files via upload --- AMAIStrategyManager.pl | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index e69e8ca8e..268007bb4 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -601,7 +601,7 @@ sub ExtractStratSub { print TARGETFILE "#AMAI 2.0 Strategy\n"; my $line = ; while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_strategy')) })) !~ /^$stratname\t/) {} - print TARGETFILE $line; + print TARGETFILE $line . "\n"; while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_buildsequence')) })) !~ /\bfunction\s*init_strategy_$stratname\b/) {} print TARGETFILE $line; while (($line = ( or do { confirm_box(get_translation('err_strategy_not_complete')) })) !~ /endfunction/) {print TARGETFILE $line;} @@ -668,11 +668,10 @@ sub InsertStratSub { $x++; $stratname = "$oldstratname$x"; } - my $needs_newline = 0; seek(STRATFILE, -1, 2); my $last_char; read(STRATFILE, $last_char, 1); - $needs_newline = 1 if $last_char ne "\n"; + print STRATFILE "\n" if $last_char ne "\n"; $line =~ s/^$oldstratname/$stratname/; print STRATFILE $line; print AIFILE "\n"; @@ -683,6 +682,11 @@ sub InsertStratSub { close(AIFILE); close(STRATFILE); close(SOURCE); + open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; + my @lnewline = grep { /\S/ } ; + open(STRATFILE, ">$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; + print STRATFILE @lnewline; # Remove blank lines + close(STRATFILE); } sub InsertStrat { @@ -701,27 +705,30 @@ sub InsertProfileSub { my $profilelist = join ',', GetProfileList($version); open(SOURCE, $filename) or do { confirm_box(get_translation('err_file_not_writing', "<$filename>")) }; open(PROFILEFILE, ">>$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; - my $needs_newline = 0; seek(PROFILEFILE, -1, 2); my $last_char; read(PROFILEFILE, $last_char, 1); - $needs_newline = 1 if $last_char ne "\n"; - print PROFILEFILE "\n" if $needs_newline; + print PROFILEFILE "\n" if $last_char ne "\n"; my $line = ; if ($line !~ /#AMAI 2.0 Profile/) {die get_translation('err_not_file_profiles');} $line = ; $line =~ /^([^\t]*)\t/; my $oldprofilename = $1; - my $profilename = $oldprofilename; + my $profilename = "$oldprofilename"; my $x = 0; while ($profilelist =~ /\b$profilename\b/) { $x++; $profilename = "$oldprofilename$x"; } $line =~ s/^$oldprofilename/$profilename/; - print PROFILEFILE $line ; + print PROFILEFILE $line; close(PROFILEFILE); close(SOURCE); + open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; + my @lnewline = grep { /\S/ } ; + open(PROFILEFILE, ">$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; + print PROFILEFILE @lnewline; # Remove blank lines + close(PROFILEFILE); } sub InsertProfile { From a189cc7697aea2bb1414a13d43e9e3e9e60d15c6 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Wed, 5 Mar 2025 02:27:33 +0800 Subject: [PATCH 26/42] Add files via upload --- AMAIStrategyManager.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 268007bb4..28aca06d7 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -601,7 +601,7 @@ sub ExtractStratSub { print TARGETFILE "#AMAI 2.0 Strategy\n"; my $line = ; while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_strategy')) })) !~ /^$stratname\t/) {} - print TARGETFILE $line . "\n"; + print TARGETFILE $line."\n"; while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_buildsequence')) })) !~ /\bfunction\s*init_strategy_$stratname\b/) {} print TARGETFILE $line; while (($line = ( or do { confirm_box(get_translation('err_strategy_not_complete')) })) !~ /endfunction/) {print TARGETFILE $line;} From 3c3d5aa3096f4a7ca5717c957370918060a1618c Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Wed, 5 Mar 2025 02:29:38 +0800 Subject: [PATCH 27/42] Add files via upload --- AMAIStrategyManager.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 28aca06d7..735a9a5bf 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -601,7 +601,8 @@ sub ExtractStratSub { print TARGETFILE "#AMAI 2.0 Strategy\n"; my $line = ; while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_strategy')) })) !~ /^$stratname\t/) {} - print TARGETFILE $line."\n"; + print TARGETFILE $line; + print TARGETFILE "\n"; while (($line = ( or do { confirm_box(get_translation('err_strategy_not_found_buildsequence')) })) !~ /\bfunction\s*init_strategy_$stratname\b/) {} print TARGETFILE $line; while (($line = ( or do { confirm_box(get_translation('err_strategy_not_complete')) })) !~ /endfunction/) {print TARGETFILE $line;} From 181c61875302a442f6b5673a165c2cdf23fb070b Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Thu, 6 Mar 2025 21:42:04 +0800 Subject: [PATCH 28/42] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=BB=9A=E5=8A=A8?= =?UTF-8?q?=E5=92=8C=E6=89=93=E5=BC=80=E7=AD=96=E7=95=A5=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AMAIStrategyManager.pl | 50 ++++++++++++++++++++++-- Languages/Chinese/StrategyManager.txt | 1 + Languages/Deutsch/StrategyManager.txt | 1 + Languages/English/StrategyManager.txt | 1 + Languages/French/StrategyManager.txt | 1 + Languages/Norwegian/StrategyManager.txt | 1 + Languages/Portuguese/StrategyManager.txt | 1 + Languages/Romanian/StrategyManager.txt | 1 + Languages/Russian/StrategyManager.txt | 1 + Languages/Spanish/StrategyManager.txt | 1 + Languages/Swedish/StrategyManager.txt | 1 + 11 files changed, 57 insertions(+), 3 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 735a9a5bf..f680d180e 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -111,11 +111,13 @@ sub get_translation { -scrollbars => 'se', -height => 0, )->pack(-fill => 'both', -expand => 1); +mouse_wheel($stratlb); tie $strat, "Tk::Listbox", $stratlb; my $profilelb = $profileframe->Scrolled('Listbox', -scrollbars => 'se', -height => 0, )->pack(-fill => 'both', -expand => 1); +mouse_wheel($profilelb); tie $profile, "Tk::Listbox", $profilelb; sub confirm_box { my ($message) = @_; @@ -128,6 +130,15 @@ sub confirm_box { return; } +sub mouse_wheel { + my ($widget) = @_; + $widget->focus; + $widget->bind('', sub { + my $delta = $Tk::event->D; + $widget->yview('scroll', -($delta <=> 0), 'units'); + }); +} + my $bframe = $rframe->Frame->pack(-side => 'right'); $bframe->Label( -text => get_translation('placeholder_operate'), @@ -750,7 +761,8 @@ sub EditStrat { my $lframe = $edit->Frame->pack(-side => 'left'); my $rframe = $edit->Frame->pack(-side => 'right'); my $bframe = $rframe->Frame->pack(-side => 'right'); - my $strattable = $rframe->Table(-rows => 40)->pack(-side => 'left'); + my $strattable = $rframe->Table(-rows => 44)->pack(-side => 'left'); + $strattable->configure(-takefocus => 1); open(TIERFILE, "$ver\\$race\\Tiers.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$ver\\$race\\Tiers.txt>")) }; my @tiers = ; my $tiernum = @tiers; @@ -761,13 +773,43 @@ sub EditStrat { $lframe->Label(-height => 2,)->pack; # Placeholder $lframe->Label(-text => get_translation('label_Init_code'), -font => $font)->pack; my $inittext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; - $lframe->Label(-height => 2,)->pack; # Placeholder + $lframe->Label(-height => 1,)->pack; # Placeholder for(my $i=1;$i<=$tiernum;$i++) { $lframe->Label(-text => get_translation('label_tier_code', "$i"), -font => $font)->pack; $buildtexttier[$i] = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; } + $lframe->Label(-height => 2,)->pack; # Placeholder + $lframe->Label(-text => get_translation('label_strategy_report'), -font => $font)->pack; + my $button_frame = $lframe->Frame->pack(-side => 'top', -fill => 'x'); + my @languages = GetLanguages(); + my $buttons_per_row = 5; + my $button_count = 0; + foreach my $lang (@languages) { + my $file_path = "Languages/$lang/Strategy.txt"; + $button_frame->Button( + -text => $lang, + -font => $font, + -command => sub { + if (-e $file_path) { + system("start $file_path"); + } else { + confirm_box(get_translation('err_file_not_writing', "<$file_path>")); + } + }, + -width => int(80 / $buttons_per_row), + )->pack(-side => 'left', -padx => 2, -pady => 2); + $button_count++; + if ($button_count % $buttons_per_row == 0) { + $button_frame = $lframe->Frame->pack(-side => 'top', -fill => 'x'); + } + } + my $optarrayref = FillTable($strattable, $version, $race, @$strat[0]); FillTexts($inittext, \@buildtexttier, $version, $race, @$strat[0]); + mouse_wheel($strattable); + $strattable->bind("", sub { + $strattable->focus; + }); $bframe->Button( (-text => get_translation('button_ok'), -font => $font), -command => sub {SaveStrat($edit, $inittext, \@buildtexttier, $strattable, $version, $race, @$strat[0], $optarrayref)}, @@ -786,6 +828,7 @@ sub EditProfile { my $bframe = $edit->Frame->pack(-side => 'right'); my $profiletable = $edit->Table(-rows => 40)->pack(-side => 'left'); my $optarrayref = FillProfileTable($profiletable, $version, @$profile[0]); + mouse_wheel($profiletable); $bframe->Button( (-text => get_translation('button_ok'), -font => $font), -command => sub {SaveProfile($edit, $profiletable, $version, @$profile[0], $optarrayref)}, @@ -1227,8 +1270,9 @@ sub EditSettings { my $edit = $main->Toplevel(-title => get_translation('title_settings_editor')); my $lframe = $edit->Frame->pack(-side => 'left'); my $rframe = $edit->Frame->pack(-side => 'right'); - my $table = $lframe->Table(-rows => 37)->pack(-side => 'left'); + my $table = $lframe->Table(-rows => 40)->pack(-side => 'left'); my $rownumber = LoadSettings($table, $file); + mouse_wheel($table); $rframe->Button( (-text => get_translation('button_ok'), -font => $font), -command => sub {SaveSettings($edit, $table, $file, $rownumber)}, diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt index 2de0ae5f1..74fc13c26 100644 --- a/Languages/Chinese/StrategyManager.txt +++ b/Languages/Chinese/StrategyManager.txt @@ -30,6 +30,7 @@ label_Init_code=策略初始化设置 label_tier_code=%s 本基地训练/研究逻辑 label_racial_Init_code=全局限制 label_racial_build=全局训练/研究逻辑 +label_strategy_report=策略报告 err_file_not_writing=%s 文件不能写入,可能是文件丢失或被其他程序占用! err_strategy_not_found_ai=AI文件中找不到策略 err_strategy_not_found_strategy=策略表中找不到策略 diff --git a/Languages/Deutsch/StrategyManager.txt b/Languages/Deutsch/StrategyManager.txt index aa7d8512d..2696a98c6 100644 --- a/Languages/Deutsch/StrategyManager.txt +++ b/Languages/Deutsch/StrategyManager.txt @@ -30,6 +30,7 @@ label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= +label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= err_strategy_not_found_strategy= diff --git a/Languages/English/StrategyManager.txt b/Languages/English/StrategyManager.txt index a31c41f1f..9a9147e49 100644 --- a/Languages/English/StrategyManager.txt +++ b/Languages/English/StrategyManager.txt @@ -30,6 +30,7 @@ label_Init_code=Initalisation Code label_racial_Init_code=Racial Initalisation Code label_racial_build=Racial Build Code label_tier_code=Code for Tier %s +label_strategy_report=Strategy Report err_file_not_writing=File <%s> could not be opened for writing , Please check if the file exists or is occupied by other programs! err_strategy_not_found_ai=Strategy not found in AI File err_strategy_not_found_strategy=Strategy not found in Strategy Table diff --git a/Languages/French/StrategyManager.txt b/Languages/French/StrategyManager.txt index aa7d8512d..2696a98c6 100644 --- a/Languages/French/StrategyManager.txt +++ b/Languages/French/StrategyManager.txt @@ -30,6 +30,7 @@ label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= +label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= err_strategy_not_found_strategy= diff --git a/Languages/Norwegian/StrategyManager.txt b/Languages/Norwegian/StrategyManager.txt index aa7d8512d..2696a98c6 100644 --- a/Languages/Norwegian/StrategyManager.txt +++ b/Languages/Norwegian/StrategyManager.txt @@ -30,6 +30,7 @@ label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= +label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= err_strategy_not_found_strategy= diff --git a/Languages/Portuguese/StrategyManager.txt b/Languages/Portuguese/StrategyManager.txt index aa7d8512d..2696a98c6 100644 --- a/Languages/Portuguese/StrategyManager.txt +++ b/Languages/Portuguese/StrategyManager.txt @@ -30,6 +30,7 @@ label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= +label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= err_strategy_not_found_strategy= diff --git a/Languages/Romanian/StrategyManager.txt b/Languages/Romanian/StrategyManager.txt index aa7d8512d..2696a98c6 100644 --- a/Languages/Romanian/StrategyManager.txt +++ b/Languages/Romanian/StrategyManager.txt @@ -30,6 +30,7 @@ label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= +label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= err_strategy_not_found_strategy= diff --git a/Languages/Russian/StrategyManager.txt b/Languages/Russian/StrategyManager.txt index aa7d8512d..2696a98c6 100644 --- a/Languages/Russian/StrategyManager.txt +++ b/Languages/Russian/StrategyManager.txt @@ -30,6 +30,7 @@ label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= +label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= err_strategy_not_found_strategy= diff --git a/Languages/Spanish/StrategyManager.txt b/Languages/Spanish/StrategyManager.txt index aa7d8512d..2696a98c6 100644 --- a/Languages/Spanish/StrategyManager.txt +++ b/Languages/Spanish/StrategyManager.txt @@ -30,6 +30,7 @@ label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= +label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= err_strategy_not_found_strategy= diff --git a/Languages/Swedish/StrategyManager.txt b/Languages/Swedish/StrategyManager.txt index aa7d8512d..2696a98c6 100644 --- a/Languages/Swedish/StrategyManager.txt +++ b/Languages/Swedish/StrategyManager.txt @@ -30,6 +30,7 @@ label_Init_code= label_tier_code= label_racial_Init_code= label_racial_build= +label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= err_strategy_not_found_strategy= From c6301be6d730ba6961149a532fb3cfbaa0a4ec39 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Thu, 6 Mar 2025 23:55:39 +0800 Subject: [PATCH 29/42] Add files via upload --- AMAIStrategyManager.pl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index f680d180e..7ebde2844 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -382,7 +382,7 @@ sub mouse_wheel { -height => 1, )->pack; # Placeholder $lframe->Label( - -text => get_translation('placeholder_about'), + -text => (get_translation('placeholder_about')), -font => $font, -width => 24, -height => 1, @@ -397,6 +397,13 @@ sub mouse_wheel { }, -width => 24, )->pack; +$lframe->Label( + -height => 4, +)->pack; # Placeholder +$lframe->Label( + -text => ("v 1.1"), + -font => $font, + )->pack; # $lframe->Label( # -height => 4, # )->pack; # Placeholder From 1d3ecc66c2f7725be810304bca7b82a4518bdf4e Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 16 Mar 2025 13:03:00 +0800 Subject: [PATCH 30/42] Add files via upload --- Languages/Chinese/StrategyManager.txt | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt index 74fc13c26..f56c5b9c9 100644 --- a/Languages/Chinese/StrategyManager.txt +++ b/Languages/Chinese/StrategyManager.txt @@ -30,7 +30,7 @@ label_Init_code=策略初始化设置 label_tier_code=%s 本基地训练/研究逻辑 label_racial_Init_code=全局限制 label_racial_build=全局训练/研究逻辑 -label_strategy_report=策略报告 +label_strategy_report=策略报告译文 err_file_not_writing=%s 文件不能写入,可能是文件丢失或被其他程序占用! err_strategy_not_found_ai=AI文件中找不到策略 err_strategy_not_found_strategy=策略表中找不到策略 @@ -290,18 +290,18 @@ second hero bonus=二发哪位英雄有加成 second hero bonus amount=二发英雄加成值 third hero bonus=三发哪位英雄有加成 third hero bonus amount=三发英雄加成值 -enemy_ELF add agg t1=1本对敌暗夜侵略性额外加成 -enemy_ELF add agg t2=2本对敌暗夜侵略性额外加成 -enemy_ELF add agg t3=3本对敌暗夜侵略性额外加成 -enemy_HUMAN add agg t1=1本对敌人类侵略性额外加成 -enemy_HUMAN add agg t2=2本对敌人类侵略性额外加成 -enemy_HUMAN add agg t3=3本对敌人类侵略性额外加成 -enemy_ORC add agg t1=1本对敌兽族侵略性额外加成 -enemy_ORC add agg t2=2本对敌兽族侵略性额外加成 -enemy_ORC add agg t3=3本对敌兽族侵略性额外加成 -enemy_UNDEAD add agg t1=1本对敌亡灵侵略性额外加成 -enemy_UNDEAD add agg t2=2本对敌亡灵侵略性额外加成 -enemy_UNDEAD add agg t3=3本对敌亡灵侵略性额外加成 +enemy_ELF add agg t1=1本对抗暗夜侵略性额外加成 +enemy_ELF add agg t2=2本对抗暗夜侵略性额外加成 +enemy_ELF add agg t3=3本对抗暗夜侵略性额外加成 +enemy_HUMAN add agg t1=1本对抗人类侵略性额外加成 +enemy_HUMAN add agg t2=2本对抗人类侵略性额外加成 +enemy_HUMAN add agg t3=3本对抗人类侵略性额外加成 +enemy_ORC add agg t1=1本对抗兽族侵略性额外加成 +enemy_ORC add agg t2=2本对抗兽族侵略性额外加成 +enemy_ORC add agg t3=3本对抗兽族侵略性额外加成 +enemy_UNDEAD add agg t1=1本对抗亡灵侵略性额外加成 +enemy_UNDEAD add agg t2=2本对抗亡灵侵略性额外加成 +enemy_UNDEAD add agg t3=3本对抗亡灵侵略性额外加成 Profile Name=档案名称 Race=种族 From ff7889802df0eaaa8874a1ee63ad24f6bdbae8d4 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 16 Mar 2025 13:03:49 +0800 Subject: [PATCH 31/42] Add files via upload --- Languages/English/StrategyManager.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Languages/English/StrategyManager.txt b/Languages/English/StrategyManager.txt index 9a9147e49..311e061b2 100644 --- a/Languages/English/StrategyManager.txt +++ b/Languages/English/StrategyManager.txt @@ -30,7 +30,7 @@ label_Init_code=Initalisation Code label_racial_Init_code=Racial Initalisation Code label_racial_build=Racial Build Code label_tier_code=Code for Tier %s -label_strategy_report=Strategy Report +label_strategy_report=Strategy Report Translation err_file_not_writing=File <%s> could not be opened for writing , Please check if the file exists or is occupied by other programs! err_strategy_not_found_ai=Strategy not found in AI File err_strategy_not_found_strategy=Strategy not found in Strategy Table From 4e86b832e183c36dd71c89710abbd751b3cd0d8c Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Mon, 31 Mar 2025 23:18:25 +0800 Subject: [PATCH 32/42] Edit Strat add Strat race --- AMAIStrategyManager.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 7ebde2844..8095d451d 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -776,7 +776,7 @@ sub EditStrat { close(TIERFILE); my $textheight = 48 / ($tiernum + 1); my @buildtexttier = (); - $lframe->Label(-text => get_translation('label_strategies') . " @$strat[0]", -font => $font)->pack; + $lframe->Label(-text => get_translation('label_strategies') . " @$strat[0]" . " ($race)", -font => $font)->pack; $lframe->Label(-height => 2,)->pack; # Placeholder $lframe->Label(-text => get_translation('label_Init_code'), -font => $font)->pack; my $inittext = $lframe->Scrolled('TextUndo', -scrollbars => 'se', -wrap => 'none', -height => $textheight)->pack; From c08abca10d06a5c40e7387ceef5b817be6523bba Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Tue, 15 Apr 2025 00:03:48 +0800 Subject: [PATCH 33/42] Add files via upload --- AMAIStrategyManager.pl | 334 +++++++++-------------- Languages/Chinese/StrategyManager.txt | 22 +- Languages/Deutsch/StrategyManager.txt | 26 +- Languages/English/StrategyManager.txt | 22 +- Languages/French/StrategyManager.txt | 26 +- Languages/Norwegian/StrategyManager.txt | 26 +- Languages/Portuguese/StrategyManager.txt | 26 +- Languages/Romanian/StrategyManager.txt | 26 +- Languages/Russian/StrategyManager.txt | 26 +- Languages/Spanish/StrategyManager.txt | 26 +- Languages/Swedish/StrategyManager.txt | 26 +- 11 files changed, 322 insertions(+), 264 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 8095d451d..25c85019a 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -5,14 +5,15 @@ use Tk::TextUndo; use Tk::Table; use Tk::NoteBook; +use Tk::Balloon; # Add for tooltips use Tk::Font; use open ':std', ':encoding(UTF-8)'; BEGIN{ if($^O eq 'MSWin32'){ - require Win32::Console; - #Win32::Console::Free(); + require Win32::Console; + #Win32::Console::Free(); } } @@ -93,18 +94,18 @@ sub get_translation { } my $main = MainWindow->new(-title => get_translation('title_strategy_manager')); +my $lframe = $main->Frame->pack(-side => 'left', -padx => 4); my ($screen_width, $screen_height) = ($main->screenwidth, $main->screenheight); $main->maxsize(520, 1280); -my $lframe = $main->Frame->pack(-side => 'left', -padx => 4); +$main->minsize(520, 880); my $race; my $ver; my $strat; my $profile; my $rframe = $main->Frame->pack(-side => 'right'); -my $font = $main->Font(-family => "Segoe UI", -size => 10, -weight => 'normal'); - +my $font = $main->Font(-family => "Segoe UI", -size => 11, -weight => 'normal'); my $notebook = $rframe->NoteBook()->pack(-side => 'left'); -$notebook->configure(-font => ['Segoe UI', 12]); +$notebook->configure(-font => ['Segoe UI', 11]); my $stratframe = $notebook->add("strat", -label => get_translation('label_strategies')); my $profileframe = $notebook->add("profile", -label => get_translation('label_profiles')); my $stratlb = $stratframe->Scrolled('Listbox', @@ -119,6 +120,7 @@ sub get_translation { )->pack(-fill => 'both', -expand => 1); mouse_wheel($profilelb); tie $profile, "Tk::Listbox", $profilelb; +my $bframe = $rframe->Frame->pack(-side => 'right'); sub confirm_box { my ($message) = @_; $main->messageBox( @@ -139,125 +141,93 @@ sub mouse_wheel { }); } -my $bframe = $rframe->Frame->pack(-side => 'right'); -$bframe->Label( - -text => get_translation('placeholder_operate'), - -font => $font, - -width => 18, - -height => 1, -)->pack; -$bframe->Button( - -text => get_translation('button_new'), - -font => $font, - -command => sub { - if ($notebook->raised eq 'strat') { - InsertStratSub("$ver\\$race\\New.ais", $ver, $race); - UpdateStratList($stratlb, $ver, $race) - } - else { - InsertProfileSub("$ver\\New.aip", $ver); - UpdateProfileList($profilelb, $ver) - } - }, - -width => 18, -)->pack; -$bframe->Button( - -text => get_translation('button_copy'), - -font => $font, - -command => sub { - if ($notebook->raised eq 'strat') { - CopyStrat($ver, $race, $strat); - UpdateStratList($stratlb, $ver, $race) - } - else { - CopyProfile($ver, $profile); - UpdateProfileList($profilelb, $ver) - } - }, - -width => 18, -)->pack; -$bframe->Button( - -text => get_translation('button_edit'), - -font => $font, - -command => sub { - if ($notebook->raised eq 'strat') { - EditStrat($main, $ver, $race, $strat) - } - else { - EditProfile($main, $ver, $profile) - } - }, - -width => 18, -)->pack; -$bframe->Button( - -text => get_translation('button_lock'), - -font => $font, - -command => sub { - if ($notebook->raised eq 'strat') { - SetRaceOption($ver, $race, 'debug_strategy', "STRAT_$strat->[0]") - } - else { - SetVerOption($ver, 'debug_profile', GetArrayIndex($profile, $profilelb->get(0, 'end'))) - } - }, - -width => 18, -)->pack; -$bframe->Button( - -text => get_translation('button_unlock'), - -font => $font, - -command => sub { - if ($notebook->raised eq 'strat') { - SetRaceOption($ver, $race, 'debug_strategy', -1) - } - else { - SetVerOption($ver, 'debug_profile', -1) - } - }, - -width => 18, -)->pack; -$bframe->Button( - -text => get_translation('button_extract'), - -font => $font, - -command => sub { - if ($notebook->raised eq 'strat') { - ExtractStrat($main, $ver, $race, $strat) - } - else { - ExtractProfile($main, $ver, $profile) - } - }, - -width => 18, -)->pack; -$bframe->Button( - -text => get_translation('button_insert'), - -font => $font, - -command => sub { - if ($notebook->raised eq 'strat') { - InsertStrat($main, $ver, $race); - UpdateStratList($stratlb, $ver, $race) - } - else { - InsertProfile($main, $ver); - UpdateProfileList($profilelb, $ver) - } - }, - -width => 18, -)->pack; -$bframe->Button( - -text => get_translation('button_remove'), - -font => $font, - -command => sub { - if ($notebook->raised eq 'strat') { - RemoveStrat($main, $ver, $race, $strat); - UpdateStratList($stratlb, $ver, $race) - } - else { - RemoveProfile($main, $ver, $profile); - UpdateProfileList($profilelb, $ver) - } - }, - -width => 18, -)->pack; +# Add a Balloon widget for tooltips +my $balloon = $main->Balloon( + -background => '#f8f9fa', # Soft, light-gray background + -foreground => '#343a40', # Dark gray text for high contrast + -font => $font, # Clean and modern font style + -borderwidth => 1, # Thin border for a sleek appearance + -relief => 'flat', # Flat style for a minimalistic look +); + +# Create a reusable subroutine for button creation +sub create_button { + my ($parent, $text, $command, $width, $tooltip) = @_; + my $button = $parent->Button( + -text => $text, + -font => $font, + -command => $command, + -width => $width + )->pack; + $balloon->attach($button, -msg => $tooltip) if $tooltip; + return $button; +} + +# Replace button creation with the reusable subroutine +create_button($bframe, get_translation('button_new'), sub { + if ($notebook->raised eq 'strat') { + InsertStratSub("$ver\\$race\\New.ais", $ver, $race); + UpdateStratList($stratlb, $ver, $race); + } else { + InsertProfileSub("$ver\\New.aip", $ver); + UpdateProfileList($profilelb, $ver); + } +}, 18, get_translation('button_tip_new')); +create_button($bframe, get_translation('button_copy'), sub { + if ($notebook->raised eq 'strat') { + CopyStrat($ver, $race, $strat); + UpdateStratList($stratlb, $ver, $race); + } else { + CopyProfile($ver, $profile); + UpdateProfileList($profilelb, $ver); + } +}, 18, get_translation('button_tip_copy')); +create_button($bframe, get_translation('button_edit'), sub { + if ($notebook->raised eq 'strat') { + EditStrat($main, $ver, $race, $strat); + } else { + EditProfile($main, $ver, $profile); + } +}, 18, get_translation('button_tip_edit')); +create_button($bframe, get_translation('button_lock'), sub { + if ($notebook->raised eq 'strat') { + SetRaceOption($ver, $race, 'debug_strategy', "STRAT_$strat->[0]"); + } else { + SetVerOption($ver, 'debug_profile', GetArrayIndex($profile, $profilelb->get(0, 'end'))); + } +}, 18, get_translation('button_tip_lock')); +create_button($bframe, get_translation('button_unlock'), sub { + if ($notebook->raised eq 'strat') { + SetRaceOption($ver, $race, 'debug_strategy', -1); + } else { + SetVerOption($ver, 'debug_profile', -1); + } +}, 18, get_translation('button_tip_unlock')); +create_button($bframe, get_translation('button_extract'), sub { + if ($notebook->raised eq 'strat') { + ExtractStrat($main, $ver, $race, $strat); + } else { + ExtractProfile($main, $ver, $profile); + } +}, 18, get_translation('button_tip_extract')); +create_button($bframe, get_translation('button_insert'), sub { + if ($notebook->raised eq 'strat') { + InsertStrat($main, $ver, $race); + UpdateStratList($stratlb, $ver, $race); + } else { + InsertProfile($main, $ver); + UpdateProfileList($profilelb, $ver); + } +}, 18, get_translation('button_tip_insert')); +create_button($bframe, get_translation('button_remove'), sub { + if ($notebook->raised eq 'strat') { + RemoveStrat($main, $ver, $race, $strat); + UpdateStratList($stratlb, $ver, $race); + } else { + RemoveProfile($main, $ver, $profile); + UpdateProfileList($profilelb, $ver); + } +}, 18, get_translation('button_tip_remove')); open(VERFILE, "Versions.txt") or do { confirm_box(get_translation('err_file_not_writing', "")) }; my @vers = ; @@ -296,11 +266,8 @@ sub mouse_wheel { -width => 24, -height => 1, )->pack; -$lframe->Button( - -text => get_translation('button_edit_global'), - -font => $font, - -command => sub { EditSettings($main, "$ver\\GlobalSettings.txt") }, - -width => 24)->pack; +create_button($lframe, get_translation('button_edit_global'), sub { EditSettings($main, "$ver\\GlobalSettings.txt") }, 24, +get_translation('button_tip_edit_global')); $lframe->Label( -height => 1, )->pack; # Placeholder @@ -310,17 +277,10 @@ sub mouse_wheel { -width => 24, -height => 1, )->pack; -$lframe->Button( - -text => get_translation('button_edit_racial_builds'), - -font => $font, - -command => sub { EditRacialBuilds($main, $ver, $race) }, - -width => 24 -)->pack; -$lframe->Button( - -text => get_translation('button_edit_racial_settings'), - -font => $font, - -command => sub { EditSettings($main, "$ver\\$race\\Settings.txt") }, - -width => 24)->pack; +create_button($lframe, get_translation('button_edit_racial_builds'), sub { EditRacialBuilds($main, $ver, $race) }, 24, + get_translation('button_tip_edit_racial_builds')); +create_button($lframe, get_translation('button_edit_racial_settings'), sub { EditSettings($main, "$ver\\$race\\Settings.txt") }, 24, +get_translation('button_tip_edit_racial_settings')); $lframe->Label( -height => 1, )->pack; # Placeholder @@ -330,38 +290,12 @@ sub mouse_wheel { -width => 24, -height => 1, )->pack; -$lframe->Button( - -text => get_translation('button_compile'), - -font => $font, - -command => sub { system "Make$ver.bat" }, - -width => 24, -)->pack(-anchor => 'nw'); -my $row1 = $lframe->Frame->pack(-fill => 'x', -anchor => 'nw'); -$row1->Button( - -text => get_translation('button_compile_opt'), - -font => $font, - -command => sub { system "MakeOpt$ver.bat" }, - -width => 18, -)->pack(-side => 'left', -padx => 0, -pady => 0); -$row1->Button( - -text => '?', - -font => $font, - -command => sub { do { confirm_box(get_translation('confirm_compile_opt')) } }, - -width => 4, -)->pack(-side => 'left', -padx => 2, -pady => 0); -my $row2 = $lframe->Frame->pack(-fill => 'x', -anchor => 'nw'); -$row2->Button( - -text => get_translation('button_compile_vsai'), - -font => $font, - -command => sub { system "MakeVAI$ver.bat" }, - -width => 18, -)->pack(-side => 'left', -padx => 0, -pady => 0); -$row2->Button( - -text => '?', - -font => $font, - -command => sub { do { confirm_box(get_translation('confirm_compile_vsai')) } }, - -width => 4, -)->pack(-side => 'left', -padx => 2, -pady => 0); +create_button($lframe, get_translation('button_compile_ver'), sub { system("Make$ver.bat", "1"), system("MakeOpt$ver.bat", "1") }, 24, +get_translation('button_tip_compile_ver')); +create_button($lframe, get_translation('button_compile_opt'), sub { system("MakeOpt$ver.bat", "1") }, 24, +get_translation('button_tip_compile_opt')); +create_button($lframe, get_translation('button_compile_all'), sub { system("MakeAll.bat", "1") }, 24, +get_translation('button_tip_compile_all')); $lframe->Label( -height => 1, )->pack; # Placeholder @@ -387,16 +321,13 @@ sub mouse_wheel { -width => 24, -height => 1, )->pack; - $lframe->Button( - -text => get_translation('button_about'), - -font => $font, - -command => sub { +create_button($lframe, get_translation('button_about'), sub { + -command => sub { my $url = "https://github.com/SMUnlimited/AMAI"; my $open_cmd = qq{start "" "$url"}; system($open_cmd); }, - -width => 24, -)->pack; +}, 24, ''); $lframe->Label( -height => 4, )->pack; # Placeholder @@ -404,15 +335,16 @@ sub mouse_wheel { -text => ("v 1.1"), -font => $font, )->pack; -# $lframe->Label( -# -height => 4, -# )->pack; # Placeholder -# $lframe->Button( -# -text => get_translation('button_quit'), # no need -# -font => $font, -# -command => [$main => 'destroy'], -# -width => 24, -# )->pack; +# create_button($bframe, get_translation('button_quit'), sub { + # my $response = $main->messageBox( + # -message => get_translation('message_quit'), + # -title => get_translation('title_really'), + # -type => 'YesNo', + # -default => 'no' + # ); +# $main->destroy if $response eq 'Yes'; +# }, 24, get_translation('button_tip_quit')); + MainLoop; sub GetLanguages { @@ -687,11 +619,9 @@ sub InsertStratSub { $x++; $stratname = "$oldstratname$x"; } - seek(STRATFILE, -1, 2); - my $last_char; - read(STRATFILE, $last_char, 1); - print STRATFILE "\n" if $last_char ne "\n"; $line =~ s/^$oldstratname/$stratname/; + $line = $line =~ /\S/ ? $line : ''; # Remove empty lines + $line =~ s/^\s+|\s+$//g; # Remove leading and trailing whitespace print STRATFILE $line; print AIFILE "\n"; while () { @@ -701,11 +631,6 @@ sub InsertStratSub { close(AIFILE); close(STRATFILE); close(SOURCE); - open(STRATFILE, "$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; - my @lnewline = grep { /\S/ } ; - open(STRATFILE, ">$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; - print STRATFILE @lnewline; # Remove blank lines - close(STRATFILE); } sub InsertStrat { @@ -724,30 +649,23 @@ sub InsertProfileSub { my $profilelist = join ',', GetProfileList($version); open(SOURCE, $filename) or do { confirm_box(get_translation('err_file_not_writing', "<$filename>")) }; open(PROFILEFILE, ">>$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; - seek(PROFILEFILE, -1, 2); - my $last_char; - read(PROFILEFILE, $last_char, 1); - print PROFILEFILE "\n" if $last_char ne "\n"; my $line = ; if ($line !~ /#AMAI 2.0 Profile/) {die get_translation('err_not_file_profiles');} $line = ; $line =~ /^([^\t]*)\t/; my $oldprofilename = $1; - my $profilename = "$oldprofilename"; + my $profilename = $oldprofilename; my $x = 0; while ($profilelist =~ /\b$profilename\b/) { $x++; $profilename = "$oldprofilename$x"; } $line =~ s/^$oldprofilename/$profilename/; + $line = $line =~ /\S/ ? $line : ''; + $line =~ s/^\s+|\s+$//g; # Remove leading and trailing whitespace print PROFILEFILE $line; close(PROFILEFILE); close(SOURCE); - open(PROFILEFILE, "$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; - my @lnewline = grep { /\S/ } ; - open(PROFILEFILE, ">$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; - print PROFILEFILE @lnewline; # Remove blank lines - close(PROFILEFILE); } sub InsertProfile { @@ -834,8 +752,8 @@ sub EditProfile { my $edit = $main->Toplevel(-title => get_translation('title_profile_editor')); my $bframe = $edit->Frame->pack(-side => 'right'); my $profiletable = $edit->Table(-rows => 40)->pack(-side => 'left'); - my $optarrayref = FillProfileTable($profiletable, $version, @$profile[0]); mouse_wheel($profiletable); + my $optarrayref = FillProfileTable($profiletable, $version, @$profile[0]); $bframe->Button( (-text => get_translation('button_ok'), -font => $font), -command => sub {SaveProfile($edit, $profiletable, $version, @$profile[0], $optarrayref)}, diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt index f56c5b9c9..259f0a0c8 100644 --- a/Languages/Chinese/StrategyManager.txt +++ b/Languages/Chinese/StrategyManager.txt @@ -10,13 +10,28 @@ button_quit=退出 button_edit_racial_builds=编辑种族构筑 button_edit_global=编辑全局参数 button_edit_racial_settings=编辑种族参数 -button_compile=常规 +button_compile_ver=常规 button_compile_opt=优化 -button_compile_vsai=vs 暴雪AI +button_compile_all=全部 button_ok=提交 button_cancel=取消 button_yes=确定 button_about=访问官网 +buttom_tip_new=创建新策略或档案 +button_tip_extract=导出所选策略或档案 +button_tip_insert=导入所选策略或档案 +button_tip_copy=复制所选策略或档案 +button_tip_remove=删除所选策略或档案 +button_tip_edit=编辑所选策略或档案 +button_tip_lock=锁定,使AI始终使用所选策略或档案 +button_tip_unlock=解锁所选策略或档案 +button_tip_quit=退出应用程序 +button_tip_edit_racial_builds=编辑种族构筑顺序(不管策略如何都会运行) +button_tip_edit_global=编辑所选版本全局设置(可调整AI各种选项) +button_tip_edit_racial_settings=编辑种族设置(可调整AI种族设置) +button_tip_compile_ver=编译此版本的脚本,包括正常版本和优化版本 +button_tip_compile_opt=编译此版本的优化脚本(可稍微提升AMAI运行效率) +button_tip_compile_all=编译所有可用版本的脚本 placeholder_operate=- 操作 - placeholder_ver=- 版本与种族 - placeholder_set=- 全局设置 - @@ -47,8 +62,7 @@ err_not_file_sequence=策略文件丢失 err_not_file_profiles=档案文件丢失 message_remove_strategy=确定删除策略? message_remove_profile=确定删除档案? -confirm_compile_opt=编译经过优化的脚本,可稍微提升AMAI运行效率 -confirm_compile_vsai=单双数队伍分别为 AMAI 和 第三方AI (默认为暴雪官方AI) +message_quit=确定退出? title_really=提示 title_strategy_manager=AMAI 策略管理器 title_profile_editor=AMAI 档案编辑器 diff --git a/Languages/Deutsch/StrategyManager.txt b/Languages/Deutsch/StrategyManager.txt index 2696a98c6..036a077ba 100644 --- a/Languages/Deutsch/StrategyManager.txt +++ b/Languages/Deutsch/StrategyManager.txt @@ -10,13 +10,28 @@ button_quit= button_edit_racial_builds= button_edit_global= button_edit_racial_settings= -button_compile= +button_compile_ver= button_compile_opt= -button_compile_vsai= +button_compile_all= button_ok= button_cancel= button_yes= button_about= +buttom_tip_new= +button_tip_extract= +button_tip_insert= +button_tip_copy= +button_tip_remove= +button_tip_edit= +button_tip_lock= +button_tip_unlock= +button_tip_quit= +button_tip_edit_racial_builds= +button_tip_edit_global= +button_tip_edit_racial_settings= +button_tip_compile_ver= +button_tip_compile_opt= +button_tip_compile_all= placeholder_operate= placeholder_ver= placeholder_set= @@ -27,9 +42,9 @@ placeholder_about= label_strategies= label_profiles= label_Init_code= -label_tier_code= label_racial_Init_code= label_racial_build= +label_tier_code= label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= @@ -40,15 +55,14 @@ err_strategy_not_complete_ai= err_strategy_init_not_set= err_strategy_init_not_complete= err_strategy_build_set= -err_strategy_build_complete= err_global_build_set= +err_strategy_build_complete= err_profile_not_found_profiles= err_not_file_sequence= err_not_file_profiles= message_remove_strategy= message_remove_profile= -confirm_compile_opt= -confirm_compile_vsai= +message_quit= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/English/StrategyManager.txt b/Languages/English/StrategyManager.txt index 311e061b2..c9793027b 100644 --- a/Languages/English/StrategyManager.txt +++ b/Languages/English/StrategyManager.txt @@ -10,13 +10,28 @@ button_quit=Quit button_edit_racial_builds=Edit Racial Builds button_edit_global=Edit Global Settings button_edit_racial_settings=Edit Racial Settings -button_compile=Normal +button_compile_ver=Normal button_compile_opt=Optimize -button_compile_vsai=AMAI vs AI +button_compile_all=Compile All button_ok=OK button_cancel=Cancel button_yes=Yes button_about=GitHub +buttom_tip_new=Create a new strategy or profile +button_tip_extract=Extract the selected strategy or profile to a file +button_tip_insert=Insert a strategy or profile from a file +button_tip_copy=Copy the selected strategy or profile +button_tip_remove=Remove the selected strategy or profile +button_tip_edit=Edit the selected strategy or profile +button_tip_lock=Lock to make the AI always use the selected strategy or profile +button_tip_unlock=Unlock a locked strategy or profile +button_tip_quit=Exit the application +button_tip_edit_racial_builds=Edit races build orders run regardless of strategy +button_tip_edit_global=Edit versions global settings allowing to tweak a variety of options in how the AI plays +button_tip_edit_racial_settings=Edit races settings allowing to tweak a variety of options in how the AI plays this race +button_tip_compile_ver=Compile this versions scripts both normal and optimised +button_tip_compile_opt=Compile optimized scripts to accelerate AI efficiency +button_tip_compile_all=Compile all available versions and scripts placeholder_operate=- Operate - placeholder_ver=- Versions and Race - placeholder_set=- Global Settings - @@ -47,8 +62,7 @@ err_not_file_sequence=No AMAI 2.0 Strategy File err_not_file_profiles=No AMAI 2.0 Profile File message_remove_strategy=Are you sure you want to remove that strategy? message_remove_profile=Are you sure you want to remove that profile? -confirm_compile_opt=Compile optimized scripts to accelerate AI efficiency -confirm_compile_vsai=The odd and even teams are AMAI and third-party AI (defaults to Blizzard official AI) +message_quit=Are you sure you want to quit? title_really=Tip title_strategy_manager=AMAI Strategy Manager title_profile_editor=AMAI Profile Editor diff --git a/Languages/French/StrategyManager.txt b/Languages/French/StrategyManager.txt index 2696a98c6..036a077ba 100644 --- a/Languages/French/StrategyManager.txt +++ b/Languages/French/StrategyManager.txt @@ -10,13 +10,28 @@ button_quit= button_edit_racial_builds= button_edit_global= button_edit_racial_settings= -button_compile= +button_compile_ver= button_compile_opt= -button_compile_vsai= +button_compile_all= button_ok= button_cancel= button_yes= button_about= +buttom_tip_new= +button_tip_extract= +button_tip_insert= +button_tip_copy= +button_tip_remove= +button_tip_edit= +button_tip_lock= +button_tip_unlock= +button_tip_quit= +button_tip_edit_racial_builds= +button_tip_edit_global= +button_tip_edit_racial_settings= +button_tip_compile_ver= +button_tip_compile_opt= +button_tip_compile_all= placeholder_operate= placeholder_ver= placeholder_set= @@ -27,9 +42,9 @@ placeholder_about= label_strategies= label_profiles= label_Init_code= -label_tier_code= label_racial_Init_code= label_racial_build= +label_tier_code= label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= @@ -40,15 +55,14 @@ err_strategy_not_complete_ai= err_strategy_init_not_set= err_strategy_init_not_complete= err_strategy_build_set= -err_strategy_build_complete= err_global_build_set= +err_strategy_build_complete= err_profile_not_found_profiles= err_not_file_sequence= err_not_file_profiles= message_remove_strategy= message_remove_profile= -confirm_compile_opt= -confirm_compile_vsai= +message_quit= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Norwegian/StrategyManager.txt b/Languages/Norwegian/StrategyManager.txt index 2696a98c6..036a077ba 100644 --- a/Languages/Norwegian/StrategyManager.txt +++ b/Languages/Norwegian/StrategyManager.txt @@ -10,13 +10,28 @@ button_quit= button_edit_racial_builds= button_edit_global= button_edit_racial_settings= -button_compile= +button_compile_ver= button_compile_opt= -button_compile_vsai= +button_compile_all= button_ok= button_cancel= button_yes= button_about= +buttom_tip_new= +button_tip_extract= +button_tip_insert= +button_tip_copy= +button_tip_remove= +button_tip_edit= +button_tip_lock= +button_tip_unlock= +button_tip_quit= +button_tip_edit_racial_builds= +button_tip_edit_global= +button_tip_edit_racial_settings= +button_tip_compile_ver= +button_tip_compile_opt= +button_tip_compile_all= placeholder_operate= placeholder_ver= placeholder_set= @@ -27,9 +42,9 @@ placeholder_about= label_strategies= label_profiles= label_Init_code= -label_tier_code= label_racial_Init_code= label_racial_build= +label_tier_code= label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= @@ -40,15 +55,14 @@ err_strategy_not_complete_ai= err_strategy_init_not_set= err_strategy_init_not_complete= err_strategy_build_set= -err_strategy_build_complete= err_global_build_set= +err_strategy_build_complete= err_profile_not_found_profiles= err_not_file_sequence= err_not_file_profiles= message_remove_strategy= message_remove_profile= -confirm_compile_opt= -confirm_compile_vsai= +message_quit= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Portuguese/StrategyManager.txt b/Languages/Portuguese/StrategyManager.txt index 2696a98c6..036a077ba 100644 --- a/Languages/Portuguese/StrategyManager.txt +++ b/Languages/Portuguese/StrategyManager.txt @@ -10,13 +10,28 @@ button_quit= button_edit_racial_builds= button_edit_global= button_edit_racial_settings= -button_compile= +button_compile_ver= button_compile_opt= -button_compile_vsai= +button_compile_all= button_ok= button_cancel= button_yes= button_about= +buttom_tip_new= +button_tip_extract= +button_tip_insert= +button_tip_copy= +button_tip_remove= +button_tip_edit= +button_tip_lock= +button_tip_unlock= +button_tip_quit= +button_tip_edit_racial_builds= +button_tip_edit_global= +button_tip_edit_racial_settings= +button_tip_compile_ver= +button_tip_compile_opt= +button_tip_compile_all= placeholder_operate= placeholder_ver= placeholder_set= @@ -27,9 +42,9 @@ placeholder_about= label_strategies= label_profiles= label_Init_code= -label_tier_code= label_racial_Init_code= label_racial_build= +label_tier_code= label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= @@ -40,15 +55,14 @@ err_strategy_not_complete_ai= err_strategy_init_not_set= err_strategy_init_not_complete= err_strategy_build_set= -err_strategy_build_complete= err_global_build_set= +err_strategy_build_complete= err_profile_not_found_profiles= err_not_file_sequence= err_not_file_profiles= message_remove_strategy= message_remove_profile= -confirm_compile_opt= -confirm_compile_vsai= +message_quit= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Romanian/StrategyManager.txt b/Languages/Romanian/StrategyManager.txt index 2696a98c6..036a077ba 100644 --- a/Languages/Romanian/StrategyManager.txt +++ b/Languages/Romanian/StrategyManager.txt @@ -10,13 +10,28 @@ button_quit= button_edit_racial_builds= button_edit_global= button_edit_racial_settings= -button_compile= +button_compile_ver= button_compile_opt= -button_compile_vsai= +button_compile_all= button_ok= button_cancel= button_yes= button_about= +buttom_tip_new= +button_tip_extract= +button_tip_insert= +button_tip_copy= +button_tip_remove= +button_tip_edit= +button_tip_lock= +button_tip_unlock= +button_tip_quit= +button_tip_edit_racial_builds= +button_tip_edit_global= +button_tip_edit_racial_settings= +button_tip_compile_ver= +button_tip_compile_opt= +button_tip_compile_all= placeholder_operate= placeholder_ver= placeholder_set= @@ -27,9 +42,9 @@ placeholder_about= label_strategies= label_profiles= label_Init_code= -label_tier_code= label_racial_Init_code= label_racial_build= +label_tier_code= label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= @@ -40,15 +55,14 @@ err_strategy_not_complete_ai= err_strategy_init_not_set= err_strategy_init_not_complete= err_strategy_build_set= -err_strategy_build_complete= err_global_build_set= +err_strategy_build_complete= err_profile_not_found_profiles= err_not_file_sequence= err_not_file_profiles= message_remove_strategy= message_remove_profile= -confirm_compile_opt= -confirm_compile_vsai= +message_quit= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Russian/StrategyManager.txt b/Languages/Russian/StrategyManager.txt index 2696a98c6..036a077ba 100644 --- a/Languages/Russian/StrategyManager.txt +++ b/Languages/Russian/StrategyManager.txt @@ -10,13 +10,28 @@ button_quit= button_edit_racial_builds= button_edit_global= button_edit_racial_settings= -button_compile= +button_compile_ver= button_compile_opt= -button_compile_vsai= +button_compile_all= button_ok= button_cancel= button_yes= button_about= +buttom_tip_new= +button_tip_extract= +button_tip_insert= +button_tip_copy= +button_tip_remove= +button_tip_edit= +button_tip_lock= +button_tip_unlock= +button_tip_quit= +button_tip_edit_racial_builds= +button_tip_edit_global= +button_tip_edit_racial_settings= +button_tip_compile_ver= +button_tip_compile_opt= +button_tip_compile_all= placeholder_operate= placeholder_ver= placeholder_set= @@ -27,9 +42,9 @@ placeholder_about= label_strategies= label_profiles= label_Init_code= -label_tier_code= label_racial_Init_code= label_racial_build= +label_tier_code= label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= @@ -40,15 +55,14 @@ err_strategy_not_complete_ai= err_strategy_init_not_set= err_strategy_init_not_complete= err_strategy_build_set= -err_strategy_build_complete= err_global_build_set= +err_strategy_build_complete= err_profile_not_found_profiles= err_not_file_sequence= err_not_file_profiles= message_remove_strategy= message_remove_profile= -confirm_compile_opt= -confirm_compile_vsai= +message_quit= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Spanish/StrategyManager.txt b/Languages/Spanish/StrategyManager.txt index 2696a98c6..036a077ba 100644 --- a/Languages/Spanish/StrategyManager.txt +++ b/Languages/Spanish/StrategyManager.txt @@ -10,13 +10,28 @@ button_quit= button_edit_racial_builds= button_edit_global= button_edit_racial_settings= -button_compile= +button_compile_ver= button_compile_opt= -button_compile_vsai= +button_compile_all= button_ok= button_cancel= button_yes= button_about= +buttom_tip_new= +button_tip_extract= +button_tip_insert= +button_tip_copy= +button_tip_remove= +button_tip_edit= +button_tip_lock= +button_tip_unlock= +button_tip_quit= +button_tip_edit_racial_builds= +button_tip_edit_global= +button_tip_edit_racial_settings= +button_tip_compile_ver= +button_tip_compile_opt= +button_tip_compile_all= placeholder_operate= placeholder_ver= placeholder_set= @@ -27,9 +42,9 @@ placeholder_about= label_strategies= label_profiles= label_Init_code= -label_tier_code= label_racial_Init_code= label_racial_build= +label_tier_code= label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= @@ -40,15 +55,14 @@ err_strategy_not_complete_ai= err_strategy_init_not_set= err_strategy_init_not_complete= err_strategy_build_set= -err_strategy_build_complete= err_global_build_set= +err_strategy_build_complete= err_profile_not_found_profiles= err_not_file_sequence= err_not_file_profiles= message_remove_strategy= message_remove_profile= -confirm_compile_opt= -confirm_compile_vsai= +message_quit= title_really= title_strategy_manager= title_profile_editor= diff --git a/Languages/Swedish/StrategyManager.txt b/Languages/Swedish/StrategyManager.txt index 2696a98c6..036a077ba 100644 --- a/Languages/Swedish/StrategyManager.txt +++ b/Languages/Swedish/StrategyManager.txt @@ -10,13 +10,28 @@ button_quit= button_edit_racial_builds= button_edit_global= button_edit_racial_settings= -button_compile= +button_compile_ver= button_compile_opt= -button_compile_vsai= +button_compile_all= button_ok= button_cancel= button_yes= button_about= +buttom_tip_new= +button_tip_extract= +button_tip_insert= +button_tip_copy= +button_tip_remove= +button_tip_edit= +button_tip_lock= +button_tip_unlock= +button_tip_quit= +button_tip_edit_racial_builds= +button_tip_edit_global= +button_tip_edit_racial_settings= +button_tip_compile_ver= +button_tip_compile_opt= +button_tip_compile_all= placeholder_operate= placeholder_ver= placeholder_set= @@ -27,9 +42,9 @@ placeholder_about= label_strategies= label_profiles= label_Init_code= -label_tier_code= label_racial_Init_code= label_racial_build= +label_tier_code= label_strategy_report= err_file_not_writing= err_strategy_not_found_ai= @@ -40,15 +55,14 @@ err_strategy_not_complete_ai= err_strategy_init_not_set= err_strategy_init_not_complete= err_strategy_build_set= -err_strategy_build_complete= err_global_build_set= +err_strategy_build_complete= err_profile_not_found_profiles= err_not_file_sequence= err_not_file_profiles= message_remove_strategy= message_remove_profile= -confirm_compile_opt= -confirm_compile_vsai= +message_quit= title_really= title_strategy_manager= title_profile_editor= From eeabc2833dc86c3c20ce500fa2c6190695127fe6 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Tue, 15 Apr 2025 00:11:46 +0800 Subject: [PATCH 34/42] Add files via upload --- AMAIStrategyManager.pl | 6 +++--- Languages/Chinese/StrategyManager.txt | 2 +- Languages/Deutsch/StrategyManager.txt | 2 +- Languages/English/StrategyManager.txt | 2 +- Languages/French/StrategyManager.txt | 2 +- Languages/Norwegian/StrategyManager.txt | 2 +- Languages/Portuguese/StrategyManager.txt | 2 +- Languages/Romanian/StrategyManager.txt | 2 +- Languages/Russian/StrategyManager.txt | 2 +- Languages/Spanish/StrategyManager.txt | 2 +- Languages/Swedish/StrategyManager.txt | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 25c85019a..f2c123c13 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -103,9 +103,9 @@ sub get_translation { my $strat; my $profile; my $rframe = $main->Frame->pack(-side => 'right'); -my $font = $main->Font(-family => "Segoe UI", -size => 11, -weight => 'normal'); +my $font = $main->Font(-family => "Segoe", -size => 11, -weight => 'normal'); my $notebook = $rframe->NoteBook()->pack(-side => 'left'); -$notebook->configure(-font => ['Segoe UI', 11]); +$notebook->configure(-font => ['Segoe', 11]); my $stratframe = $notebook->add("strat", -label => get_translation('label_strategies')); my $profileframe = $notebook->add("profile", -label => get_translation('label_profiles')); my $stratlb = $stratframe->Scrolled('Listbox', @@ -145,7 +145,7 @@ sub mouse_wheel { my $balloon = $main->Balloon( -background => '#f8f9fa', # Soft, light-gray background -foreground => '#343a40', # Dark gray text for high contrast - -font => $font, # Clean and modern font style + -font => 'Segoe 11 bold', # Clean and modern font style -borderwidth => 1, # Thin border for a sleek appearance -relief => 'flat', # Flat style for a minimalistic look ); diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt index 259f0a0c8..592193c66 100644 --- a/Languages/Chinese/StrategyManager.txt +++ b/Languages/Chinese/StrategyManager.txt @@ -17,7 +17,7 @@ button_ok=提交 button_cancel=取消 button_yes=确定 button_about=访问官网 -buttom_tip_new=创建新策略或档案 +button_tip_new=创建新策略或档案 button_tip_extract=导出所选策略或档案 button_tip_insert=导入所选策略或档案 button_tip_copy=复制所选策略或档案 diff --git a/Languages/Deutsch/StrategyManager.txt b/Languages/Deutsch/StrategyManager.txt index 036a077ba..f3feb9aad 100644 --- a/Languages/Deutsch/StrategyManager.txt +++ b/Languages/Deutsch/StrategyManager.txt @@ -17,7 +17,7 @@ button_ok= button_cancel= button_yes= button_about= -buttom_tip_new= +button_tip_new= button_tip_extract= button_tip_insert= button_tip_copy= diff --git a/Languages/English/StrategyManager.txt b/Languages/English/StrategyManager.txt index c9793027b..35fa61bae 100644 --- a/Languages/English/StrategyManager.txt +++ b/Languages/English/StrategyManager.txt @@ -17,7 +17,7 @@ button_ok=OK button_cancel=Cancel button_yes=Yes button_about=GitHub -buttom_tip_new=Create a new strategy or profile +button_tip_new=Create a new strategy or profile button_tip_extract=Extract the selected strategy or profile to a file button_tip_insert=Insert a strategy or profile from a file button_tip_copy=Copy the selected strategy or profile diff --git a/Languages/French/StrategyManager.txt b/Languages/French/StrategyManager.txt index 036a077ba..f3feb9aad 100644 --- a/Languages/French/StrategyManager.txt +++ b/Languages/French/StrategyManager.txt @@ -17,7 +17,7 @@ button_ok= button_cancel= button_yes= button_about= -buttom_tip_new= +button_tip_new= button_tip_extract= button_tip_insert= button_tip_copy= diff --git a/Languages/Norwegian/StrategyManager.txt b/Languages/Norwegian/StrategyManager.txt index 036a077ba..f3feb9aad 100644 --- a/Languages/Norwegian/StrategyManager.txt +++ b/Languages/Norwegian/StrategyManager.txt @@ -17,7 +17,7 @@ button_ok= button_cancel= button_yes= button_about= -buttom_tip_new= +button_tip_new= button_tip_extract= button_tip_insert= button_tip_copy= diff --git a/Languages/Portuguese/StrategyManager.txt b/Languages/Portuguese/StrategyManager.txt index 036a077ba..f3feb9aad 100644 --- a/Languages/Portuguese/StrategyManager.txt +++ b/Languages/Portuguese/StrategyManager.txt @@ -17,7 +17,7 @@ button_ok= button_cancel= button_yes= button_about= -buttom_tip_new= +button_tip_new= button_tip_extract= button_tip_insert= button_tip_copy= diff --git a/Languages/Romanian/StrategyManager.txt b/Languages/Romanian/StrategyManager.txt index 036a077ba..f3feb9aad 100644 --- a/Languages/Romanian/StrategyManager.txt +++ b/Languages/Romanian/StrategyManager.txt @@ -17,7 +17,7 @@ button_ok= button_cancel= button_yes= button_about= -buttom_tip_new= +button_tip_new= button_tip_extract= button_tip_insert= button_tip_copy= diff --git a/Languages/Russian/StrategyManager.txt b/Languages/Russian/StrategyManager.txt index 036a077ba..f3feb9aad 100644 --- a/Languages/Russian/StrategyManager.txt +++ b/Languages/Russian/StrategyManager.txt @@ -17,7 +17,7 @@ button_ok= button_cancel= button_yes= button_about= -buttom_tip_new= +button_tip_new= button_tip_extract= button_tip_insert= button_tip_copy= diff --git a/Languages/Spanish/StrategyManager.txt b/Languages/Spanish/StrategyManager.txt index 036a077ba..f3feb9aad 100644 --- a/Languages/Spanish/StrategyManager.txt +++ b/Languages/Spanish/StrategyManager.txt @@ -17,7 +17,7 @@ button_ok= button_cancel= button_yes= button_about= -buttom_tip_new= +button_tip_new= button_tip_extract= button_tip_insert= button_tip_copy= diff --git a/Languages/Swedish/StrategyManager.txt b/Languages/Swedish/StrategyManager.txt index 036a077ba..f3feb9aad 100644 --- a/Languages/Swedish/StrategyManager.txt +++ b/Languages/Swedish/StrategyManager.txt @@ -17,7 +17,7 @@ button_ok= button_cancel= button_yes= button_about= -buttom_tip_new= +button_tip_new= button_tip_extract= button_tip_insert= button_tip_copy= From 3003ff88eec871bb8ea498eae79eed7a4c43ad8c Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Tue, 15 Apr 2025 00:13:05 +0800 Subject: [PATCH 35/42] Add files via upload --- AMAIStrategyManager.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index f2c123c13..436cb3523 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -155,7 +155,7 @@ sub create_button { my ($parent, $text, $command, $width, $tooltip) = @_; my $button = $parent->Button( -text => $text, - -font => $font, + -font => $font, -command => $command, -width => $width )->pack; From e2a118682ea6e43db1de4004dab95dd90b7aaae9 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Fri, 25 Apr 2025 21:03:42 +0800 Subject: [PATCH 36/42] debug num --- Languages/Chinese/StrategyManager.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt index 592193c66..f5edd5431 100644 --- a/Languages/Chinese/StrategyManager.txt +++ b/Languages/Chinese/StrategyManager.txt @@ -153,7 +153,7 @@ fixedcomputername=AMAI应该使用固定名称而不是档案名称? green_creep_camp_strength_bonus=绿点野怪额外强度 orange_creep_camp_strength_bonus=黄点野怪额外强度 red_creep_camp_strength_bonus=红点野怪额外强度 -debugging=打开调试模式?(DEBUG) +debugging=设为非0启用调试模式(DEBUG),系统会显示对应数字的调试类型消息 strategy_change_threshold=新策略优先级必须大于当前策略几倍? disable_surrender=AMAI不该过早放弃游戏? major_hero_skill_value=英雄选择一技能的概率 From feecfa36b527859266cfd1be570d0180dbebc94d Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sat, 17 May 2025 15:32:39 +0800 Subject: [PATCH 37/42] Add files via upload --- Jobs/TOWER_RUSH_CHECK.eai | 198 +++++++++++++++++++++++++++----------- 1 file changed, 143 insertions(+), 55 deletions(-) diff --git a/Jobs/TOWER_RUSH_CHECK.eai b/Jobs/TOWER_RUSH_CHECK.eai index faaba052e..75766d7ec 100644 --- a/Jobs/TOWER_RUSH_CHECK.eai +++ b/Jobs/TOWER_RUSH_CHECK.eai @@ -1,56 +1,144 @@ -#IFDEF GLOBAL - boolean towerrush = false - unit array builder - location tower_target_loc = null - real first_tower_point_x = 0 - real first_tower_point_y = 0 - real enemy_point_x = 0 - real enemy_point_y = 0 - integer towers_built = 0 - player rushedplayer = null - location toweringplayerloc = null -#ELSE - -// ######################## Tower Rush Check ############################## -// # Created by Strategy Master 13/07/05. The conditions that check if -// # tower rush can start. -// ####################################################################### - -function StartTowerRush takes integer delay returns nothing - set toweringplayerloc = GetStartLocationLoc(GetPlayerStartLocation(rushedplayer)) - - call Trace("Starting the tower rush") - set towerrush = true - call SetPeonsRepair(false) - set towers_built = 0 - call DisplayToAllies(chat_towerrush) -// set rushedplayer = GetNearestEnemy() // no longer needed as is set from the GetNearestEnemyDistance function - set tower_target_loc = GetLocationInDistanceFromLoc(toweringplayerloc,front_base_distance, true) - - call TQAddJob(delay , TOWER_RUSH, 0) - -endfunction - -function TowerRushCheck takes nothing returns nothing -local integer i = GetRandomInt(1,100) - call DisplayToAllJobDebug("TOWER_RUSH_CHECK JOB START") - - if not towerrush then - if hero_rush_bonus[hero[1]] >= race_towerrush_hero_rush_level then - // if ai_time > 60 then // 5 mins - // set towerrush = false - // //call Trace("Tower Rush - Out of Time") - // elseif GetNearestEnemyDistance() < 8000 then // Total percentage to be choosen is 33% - // call StartTowerRush() - // elseif i <= 75 and GetNearestEnemyDistance() < 11000 then // Total percentage to be choosen is 25% - // call StartTowerRush() - // elseif i <= 50 and GetNearestEnemyDistance() < 14000 then // Total percentage to be choosen is 16% - // call StartTowerRush() - // elseif i <= 20 and GetNearestEnemyDistance() < 16000 then // Total percentage to be choosen is 7% - // endif - endif - endif -// call TQAddJob(90, TOWER_RUSH_CHECK, 0) -endfunction - +#IFDEF GLOBAL + boolean towerrush = false + boolean race_tower_alliancetarget = false // alliance have tower rush target? + boolean tower_used_item = false // tower rush item used done? + boolean tower_attack_run = false // tower rush attack team has left home? + boolean tower_peon_run = false // tower rush peon team has left home? just first left + boolean tower_peon_inplace = false // tower rush peon in place? use to attack + boolean Console_TR_Commands = false // tower rush Order by Player from Console? + unit array builder // hero and peon go to enemy home + location tower_target_loc = null + real first_tower_point_x = 0 + real first_tower_point_y = 0 + real second_attack_point_x = 0 + real second_attack_point_y = 0 + real enemy_point_x = 0 + real enemy_point_y = 0 + real tower_peon_point_x = 0 + real tower_peon_point_y = 0 + integer towers_built = 0 + integer towers_built_count = 0 + integer race_tower_shop = 0 + player rushedplayer = null + group tower_rush_power = null + location toweringplayerloc = null + location towerrushsubloc = null + location towerrecoveryloc = null +#ELSE + +// ######################## Tower Rush Check ############################## +// # Created by Strategy Master 13/07/05. The conditions that check if +// # tower rush can start. +// ####################################################################### + +function StartTowerRush takes integer delay returns nothing + //local location target_loc = null + // if GetLocationNonCreepStrength(enemy_point_x, enemy_point_y, 2000) == 0 and ai_time >= 80 then //no longer needed as is set from the GetNearestEnemyDistance, and now will set other Base + // call StartGetEnemyBase() + // loop + // exitwhen not WaitGetEnemyBase() + // call Sleep(1) + // endloop + // set u = GetEnemyBase() + // set target_loc = GetUnitLoc(u) + // set enemy_point_x = GetLocationX(target_loc) + // set enemy_point_y = GetLocationY(target_loc) + // set toweringplayerloc = Location(enemy_point_x ,enemy_point_y) + // endif + set tower_rush_power = CreateGroup() + call SetPeonsRepair(false) + call DisplayToAllies(chat_towerrush) + call DisplayToObserversImportant(chat_towerrush) + set towers_built = 0 + set towers_built_count = 0 + call Trace("Starting the tower rush") + set towerrush = true + call TQAddJob(RMax(delay,5), TOWER_RUSH, 0) +endfunction + +function TowerRushCheck takes integer delay returns nothing + //local integer i = GetRandomInt(1,100) + local unit u = null + local player p = null + local real distance = GetNearestEnemyDistance() + local boolean mapinappropriate = (c_ally_total + c_enemy_total) > 5 or (c_ally_total - c_enemy_total < -1) or mapSize > 3 // only 1V1 OR 2V2 map + call DisplayToAllJobDebug("TOWER_RUSH_CHECK JOB START") + if rushedplayer == null or (not IsLocationFoggedToPlayer(home_location, rushedplayer) and not Console_TR_Commands) or distance > 14000 or distance < front_base_distance * 2 or builder[10] == null or mapinappropriate or (race_tower_item_must and racial_shop == 0 and not IsPointBlighted(GetUnitX(builder[10]), GetUnitY(builder[10])) and IsPointBlighted(GetLocationX(home_location), GetLocationY(home_location))) then //Distance to too far or player too many or ffa , ROC not shop + call Trace("the map unsuited tower rush") + if Console_TR_Commands then + call DisplayToAllies(chat_unsuited_towerrush) + endif + if mapinappropriate then + set race_towerrush_available = false + endif + set builder[10] = null + return + endif + + //set rushedplayer = GetNearestEnemy() // no longer needed as is set from the GetNearestEnemyDistance function + if toweringplayerloc == null then + if race_tower_alliancetarget == false and ai_time <= 96 then // Priority collaboration with allies + set u = GetAllianceTarget() + if u == null or not UnitAlive(u) then + set u = I2U(GetStoredInteger(amaiCache, Int2Str(ALLIANCE_TARGET), "0")) + endif + endif + if u != null then //coordinate towertush with allies , 480 second + set p = GetOwningPlayer(u) + if IsPlayerEnemy(p, ai_player) and p != Player(PLAYER_NEUTRAL_AGGRESSIVE) then + set rushedplayer = p + set toweringplayerloc = GetStartLocationLoc(GetPlayerStartLocation(rushedplayer)) + set race_tower_alliancetarget = true + set builder[10] = null + endif + set p = null + endif + if toweringplayerloc == null and builder[10] != null then + set toweringplayerloc = GetUnitLoc(builder[10]) // builder[10] from the GetNearestEnemyDistance + endif + set u = null + endif + if toweringplayerloc != null then + if GetPlayerRace(rushedplayer) == RACE_NIGHTELF and GetPlayerStructureCount(rushedplayer, true) < 6 then + set tower_target_loc = GetLocationInDistanceFromLoc(toweringplayerloc, 700, true) // ELF can be closer + else + set tower_target_loc = GetLocationInDistanceFromLoc(toweringplayerloc, front_base_distance, true) //DistanceBetweenPoints the toweringplayerloc and first_tower_point , front_base_distance now is change , so need set new + endif + if tower_target_loc != null then + set racial_rushcreep = 0 // TowerRush BR , waste time + set enemy_point_x = GetLocationX(toweringplayerloc) + set enemy_point_y = GetLocationY(toweringplayerloc) + set towerrushsubloc = GetSubtractionLoc(tower_target_loc, toweringplayerloc) + call StartTowerRush(delay) + return + endif + call RemoveLocation(toweringplayerloc) + set toweringplayerloc = null + endif + if Console_TR_Commands then + call DisplayToAllies(chat_unsuited_towerrush) + endif + set enemy_point_x = 0 + set enemy_point_y = 0 + set rushedplayer = null + set builder[10] = null + set race_tower_alliancetarget = false + //if not towerrush then + //if hero_rush_bonus[hero[1]] >= race_towerrush_hero_rush_level then + // if ai_time > 60 then // 5 mins + // set towerrush = false + // //call Trace("Tower Rush - Out of Time") + // elseif GetNearestEnemyDistance() < 8000 then // Total percentage to be choosen is 33% + // call StartTowerRush() + // elseif i <= 75 and GetNearestEnemyDistance() < 11000 then // Total percentage to be choosen is 25% + // call StartTowerRush() + // elseif i <= 50 and GetNearestEnemyDistance() < 14000 then // Total percentage to be choosen is 16% + // call StartTowerRush() + // elseif i <= 20 and GetNearestEnemyDistance() < 16000 then // Total percentage to be choosen is 7% + // endif + //endif + //endif +// call TQAddJob(90, TOWER_RUSH_CHECK, 0) +endfunction + #ENDIF \ No newline at end of file From 9b9f690d2a7337b02d798e95de7ebe5f0796d8e2 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Fri, 1 Aug 2025 22:40:12 +0800 Subject: [PATCH 38/42] fix --- AMAIStrategyManager.pl | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index 436cb3523..ff23677b7 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -7,16 +7,9 @@ use Tk::NoteBook; use Tk::Balloon; # Add for tooltips use Tk::Font; +use utf8; use open ':std', ':encoding(UTF-8)'; - -BEGIN{ - if($^O eq 'MSWin32'){ - require Win32::Console; - #Win32::Console::Free(); - } -} - my $fdialogbug = 0; if($] >= 5.008004) { @@ -94,6 +87,7 @@ sub get_translation { } my $main = MainWindow->new(-title => get_translation('title_strategy_manager')); +$main->optionAdd('*font' => 'Segoe 12'); my $lframe = $main->Frame->pack(-side => 'left', -padx => 4); my ($screen_width, $screen_height) = ($main->screenwidth, $main->screenheight); $main->maxsize(520, 1280); @@ -129,7 +123,7 @@ sub confirm_box { -type => 'OK', -default => 'OK', ); - return; + die; } sub mouse_wheel { @@ -609,7 +603,7 @@ sub InsertStratSub { open(AIFILE, ">>$version\\$race\\BuildSequence.ai") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\BuildSequence.ai>")) }; open(STRATFILE, ">>$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; my $line = ; - if ($line !~ /#AMAI 2.0 Strategy/) {die get_translation('err_not_file_sequence');} + if ($line !~ /#AMAI 2.0 Strategy/) {do { confirm_box(get_translation('err_not_file_sequence')) };} $line = ; $line =~ /^([^\t]*)\t/; my $oldstratname = $1; @@ -650,7 +644,7 @@ sub InsertProfileSub { open(SOURCE, $filename) or do { confirm_box(get_translation('err_file_not_writing', "<$filename>")) }; open(PROFILEFILE, ">>$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; my $line = ; - if ($line !~ /#AMAI 2.0 Profile/) {die get_translation('err_not_file_profiles');} + if ($line !~ /#AMAI 2.0 Profile/) {do { confirm_box(get_translation('err_not_file_profiles')) };} $line = ; $line =~ /^([^\t]*)\t/; my $oldprofilename = $1; @@ -663,6 +657,7 @@ sub InsertProfileSub { $line =~ s/^$oldprofilename/$profilename/; $line = $line =~ /\S/ ? $line : ''; $line =~ s/^\s+|\s+$//g; # Remove leading and trailing whitespace + print PROFILEFILE "\n"; print PROFILEFILE $line; close(PROFILEFILE); close(SOURCE); From 71c91f67e05068b76e9e538325597edc5a9b667f Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Fri, 1 Aug 2025 22:49:34 +0800 Subject: [PATCH 39/42] fix --- REFORGED/New.aip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/REFORGED/New.aip b/REFORGED/New.aip index 384f61090..bb767e3ed 100644 --- a/REFORGED/New.aip +++ b/REFORGED/New.aip @@ -1,2 +1,2 @@ #AMAI 2.0 Profile -NewProfile RANDOM 0 10 7 8 0 0 1000 0.9 1 8 5 0.5 1 0 0 0 0 0 0 0 0 0 +NewProfile RANDOM 0 10 7 8 0 0 1000 0.9 1 8 5 0.5 1 0 0 0 0 0 0 0 0 0 0 From 097f3e0f46982dc99aa8701702b4fba413303cde Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Fri, 1 Aug 2025 22:49:55 +0800 Subject: [PATCH 40/42] fix --- TFT/New.aip | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TFT/New.aip b/TFT/New.aip index 384f61090..bb767e3ed 100644 --- a/TFT/New.aip +++ b/TFT/New.aip @@ -1,2 +1,2 @@ #AMAI 2.0 Profile -NewProfile RANDOM 0 10 7 8 0 0 1000 0.9 1 8 5 0.5 1 0 0 0 0 0 0 0 0 0 +NewProfile RANDOM 0 10 7 8 0 0 1000 0.9 1 8 5 0.5 1 0 0 0 0 0 0 0 0 0 0 From 3b9f82845703f93e3c3f6510392f16f38a755a13 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 3 Aug 2025 15:16:42 +0800 Subject: [PATCH 41/42] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【开发项】修复驾驶舱移除最后一个档案和策略时会有多余空行的问题 【开发项】修复驾驶舱新建和复制策略时不会换行的问题 --- AMAIStrategyManager.pl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AMAIStrategyManager.pl b/AMAIStrategyManager.pl index ff23677b7..bb962d2c9 100644 --- a/AMAIStrategyManager.pl +++ b/AMAIStrategyManager.pl @@ -480,6 +480,7 @@ sub RemoveStrat { } close(STRATFILE); open(STRATFILE, ">$version\\$race\\Strategy.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\$race\\Strategy.txt>")) }; + chomp($stratfile[-1]); print STRATFILE @stratfile; close(STRATFILE); @stratfile = (); @@ -515,6 +516,7 @@ sub RemoveProfile { } close(PROFILEFILE); open(PROFILEFILE, ">$version\\Profiles.txt") or do { confirm_box(get_translation('err_file_not_writing', "<$version\\Profiles.txt>")) }; + chomp($profilefile[-1]); print PROFILEFILE @profilefile; close(PROFILEFILE); } @@ -616,6 +618,7 @@ sub InsertStratSub { $line =~ s/^$oldstratname/$stratname/; $line = $line =~ /\S/ ? $line : ''; # Remove empty lines $line =~ s/^\s+|\s+$//g; # Remove leading and trailing whitespace + print STRATFILE "\n"; print STRATFILE $line; print AIFILE "\n"; while () { From 8a353b492c52ab95077b7341ce96a56086aa6db8 Mon Sep 17 00:00:00 2001 From: jzy-chitong56 <48715223+jzy-chitong56@users.noreply.github.com> Date: Sun, 9 Nov 2025 14:53:41 +0800 Subject: [PATCH 42/42] add custom_data_set --- Languages/Chinese/StrategyManager.txt | 1 + Languages/Deutsch/StrategyManager.txt | 1 + Languages/English/StrategyManager.txt | 1 + Languages/French/StrategyManager.txt | 1 + Languages/Norwegian/StrategyManager.txt | 1 + Languages/Portuguese/StrategyManager.txt | 1 + Languages/Romanian/StrategyManager.txt | 1 + Languages/Russian/StrategyManager.txt | 1 + Languages/Spanish/StrategyManager.txt | 1 + Languages/Swedish/StrategyManager.txt | 1 + 10 files changed, 10 insertions(+) diff --git a/Languages/Chinese/StrategyManager.txt b/Languages/Chinese/StrategyManager.txt index f5edd5431..f58294e82 100644 --- a/Languages/Chinese/StrategyManager.txt +++ b/Languages/Chinese/StrategyManager.txt @@ -166,6 +166,7 @@ ver_flee_multiple2=最高侵略性下玩家强度的倍数,用于衡量是否 ver_flee_multiple3=最高侵略度下玩家强度的倍数,用于衡量AMAI是否会逃跑 ver_low_aggression=侵略性低于多少时,使用最低强度的逃跑倍数 ver_high_aggression=侵略性高于多少时,使用最高强度的逃跑倍数 +custom_data_set=如果希望AMAI在使用自定义1.0.1游戏版本的地图上工作,请设置为true hero1_revive_prio=复活首英雄的优先级 hero2_revive_prio=复活第二英雄的优先级 diff --git a/Languages/Deutsch/StrategyManager.txt b/Languages/Deutsch/StrategyManager.txt index f3feb9aad..d4415754b 100644 --- a/Languages/Deutsch/StrategyManager.txt +++ b/Languages/Deutsch/StrategyManager.txt @@ -166,6 +166,7 @@ ver_flee_multiple2= ver_flee_multiple3= ver_low_aggression= ver_high_aggression= +custom_data_set= hero1_revive_prio= hero2_revive_prio= diff --git a/Languages/English/StrategyManager.txt b/Languages/English/StrategyManager.txt index 35fa61bae..b32965a31 100644 --- a/Languages/English/StrategyManager.txt +++ b/Languages/English/StrategyManager.txt @@ -166,6 +166,7 @@ ver_flee_multiple2= ver_flee_multiple3= ver_low_aggression= ver_high_aggression= +custom_data_set= hero1_revive_prio= hero2_revive_prio= diff --git a/Languages/French/StrategyManager.txt b/Languages/French/StrategyManager.txt index f3feb9aad..d4415754b 100644 --- a/Languages/French/StrategyManager.txt +++ b/Languages/French/StrategyManager.txt @@ -166,6 +166,7 @@ ver_flee_multiple2= ver_flee_multiple3= ver_low_aggression= ver_high_aggression= +custom_data_set= hero1_revive_prio= hero2_revive_prio= diff --git a/Languages/Norwegian/StrategyManager.txt b/Languages/Norwegian/StrategyManager.txt index f3feb9aad..d4415754b 100644 --- a/Languages/Norwegian/StrategyManager.txt +++ b/Languages/Norwegian/StrategyManager.txt @@ -166,6 +166,7 @@ ver_flee_multiple2= ver_flee_multiple3= ver_low_aggression= ver_high_aggression= +custom_data_set= hero1_revive_prio= hero2_revive_prio= diff --git a/Languages/Portuguese/StrategyManager.txt b/Languages/Portuguese/StrategyManager.txt index f3feb9aad..d4415754b 100644 --- a/Languages/Portuguese/StrategyManager.txt +++ b/Languages/Portuguese/StrategyManager.txt @@ -166,6 +166,7 @@ ver_flee_multiple2= ver_flee_multiple3= ver_low_aggression= ver_high_aggression= +custom_data_set= hero1_revive_prio= hero2_revive_prio= diff --git a/Languages/Romanian/StrategyManager.txt b/Languages/Romanian/StrategyManager.txt index f3feb9aad..d4415754b 100644 --- a/Languages/Romanian/StrategyManager.txt +++ b/Languages/Romanian/StrategyManager.txt @@ -166,6 +166,7 @@ ver_flee_multiple2= ver_flee_multiple3= ver_low_aggression= ver_high_aggression= +custom_data_set= hero1_revive_prio= hero2_revive_prio= diff --git a/Languages/Russian/StrategyManager.txt b/Languages/Russian/StrategyManager.txt index f3feb9aad..d4415754b 100644 --- a/Languages/Russian/StrategyManager.txt +++ b/Languages/Russian/StrategyManager.txt @@ -166,6 +166,7 @@ ver_flee_multiple2= ver_flee_multiple3= ver_low_aggression= ver_high_aggression= +custom_data_set= hero1_revive_prio= hero2_revive_prio= diff --git a/Languages/Spanish/StrategyManager.txt b/Languages/Spanish/StrategyManager.txt index f3feb9aad..d4415754b 100644 --- a/Languages/Spanish/StrategyManager.txt +++ b/Languages/Spanish/StrategyManager.txt @@ -166,6 +166,7 @@ ver_flee_multiple2= ver_flee_multiple3= ver_low_aggression= ver_high_aggression= +custom_data_set= hero1_revive_prio= hero2_revive_prio= diff --git a/Languages/Swedish/StrategyManager.txt b/Languages/Swedish/StrategyManager.txt index f3feb9aad..d4415754b 100644 --- a/Languages/Swedish/StrategyManager.txt +++ b/Languages/Swedish/StrategyManager.txt @@ -166,6 +166,7 @@ ver_flee_multiple2= ver_flee_multiple3= ver_low_aggression= ver_high_aggression= +custom_data_set= hero1_revive_prio= hero2_revive_prio=