强烈建议:修改前备份原文件!
1,开始等级,技能等修改
用记事本打开x:\Program Files\Star Interactive\Age of Pirates – Caribbean Tales\Program\characters\characters_init.c文件,
查找以下字符:
for(n=0; nTOTAL_CHARACTERS; n )
{
makeref(ch,Characters[n]);
//DeleteAttribute(ch,”act”);
DeleteAttribute(ch,””);
(这个以下是开始在船上工作的人员,以后召收的指挥官属性修改在后面)
…………….
ch.skill.freeskill = 100; ---这是修改后的技能点数,
ch.perks.freepoints = 100; ---这是修改后的能力点数,
…………….
ch.rank = 8001; ---这是修改后的开始级别,和以后要召收的指挥官等级有关联,不要大于主角的等级数.
指挥官的开始等级修改后,把以下字段删除掉:
ch.rank = sti(ch.skill.Leadership) sti(ch.skill.Fencing) sti(ch.skill.Gun) sti(ch.skill.Sailing) sti(ch.skill.Accuracy) sti(ch.skill.Cannons) sti(ch.skill.Grappling) sti(ch.skill.Repair) sti(ch.skill.Defence) sti(ch.skill.Commerce) sti(ch.skill.Sneak) – 13;
(各种技能的开始值不用修改了,因为修改技能点数后,再手动加上去就可以了.)
以下是开始时在你船上的工作人员,原来都是-1表示没有,1表示你自己,2是女主角,不要添1,3以后是其他人.
ch.Fellows.Passengers.boatswain = “2”;
ch.Fellows.Passengers.navigator = “3”;
ch.Fellows.Passengers.doctor = “4”;
ch.Fellows.Passengers.cannoner = “5”;
ch.Fellows.Passengers.treasurer = “6”;
ch.Fellows.Passengers.carpenter = “7”;
………………..
makeref(ch,Characters[1]); //Blaze Sharp
ch.name = XI_ConvertString(“Blaze”);
(这个以下是男主角部分)
………………….
ch.model = “devlin”; --人物代码,可以换成其他人物形像来玩.
………………..
ch.skill.freeskill = 100; ---这是修改后的技能点数,
ch.perks.freepoints = 100; ---这是修改后的能力点数,
…………..
ch.rank = 8200; ---这是修改后的开始级别,数值必须要比前面的指挥官的等级数大一些,上万可能出错.
…………….
ch.money = “9999990”; --这是修改后的金钱,多了好像就出错了.
…………..
ch.Ship.Name = “Quicksilver”; --船的名字.改成喜欢的中文名字.
ch.Ship.Type = GenerateShip(SHIP_LUGGER, 1); --这是开始的船,一条小破船.
改成:
ch.Ship.Type = GenerateShip(SHIP_BATTLESHIP, 1);
其中括号里的SHIP_BATTLESHIP是战列舰的代码,表示你一开始就用了战列舰,你还可以在X:\Program Files\Star Interactive\Age of Pirates – Caribbean Tales\Program\ships\Ships_init.c 文件里修改这条战舰的其他属性.
GiveItem2Character(ch, “blade1”); —————开始时的佩剑,改为blade17,游戏中的好剑“绝壁”
EquipCharacterByItem(ch, “blade1”); ————- 同上
GiveItem2Character(ch, “gun1”); ————- 开始时的佩枪,改为gun7,
EquipCharacterByItem(ch, “gun1”); ————-同上
GiveItem2Character(ch, “spyglass1”); ————-开始时的望远镜,改为spyglass4
EquipCharacterByItem(ch, “spyglass1”); ————-同上
……………
makeref(ch,Characters[2]);
ch.name = XI_ConvertString(“Beatrice”);
(这个以下是女主角部分,修改和男主角一样,不再重复)
2,船支属性修改
按照以下的修改,游戏中可能会遇到这样无敌的敌方船支,如果非要改一条自己专用的船,具体作法就是船的数据,比如船体和船帆的耐久度,航行速度等在内存中修改(方法见关于修改《沉船》的帖子)。至于火炮类型和最大口径以及船员数,可以还用以下方法来修改,因为电脑可能还没有升级这些。
用记事本打开X:\Program Files\Star Interactive\Age of Pirates – Caribbean Tales\Program\ships\Ships_init.c 文件,在这个文件里可以修改游戏里各种类型的船的容量,船体的血值,帆的血值,最大船员数,装载的火炮类型和数量,以及航速和转速等.
以战列舰为例,以下数据是修改后的结果.需要修改的地方加以说明.
///////////////////////////////////////////////////////////////////////////
/// Battleship
///////////////////////////////////////////////////////////////////////////
makeref(refShip,ShipsTypes[SHIP_BATTLESHIP]); ----SHIP_BATTLESHIP是这条战列舰的代码,就是在前面加入开始拥有的船支.
refShip.Name = “Battleship”;
refship.Soundtype = “lineship”;
refShip.Class = 1;
refShip.Cannon = CANNON_NAME_MORTAR; ----可以升级到迫击炮,在Cannons_init.c 火炮文件里有各种火炮的数据和代码.
refShip.MaxCaliber = 92; ----可升级的最大口径.这里的数字参考Cannons_init.c 文件里的相关数据,不是自己乱改.
refShip.Weight = Tonnes2CWT(893000); --承重量
refShip.Capacity = 885500; ---船舱容量
refShip.CannonsQuantity = 180; --可装的火炮数量
refShip.rcannon = 80; --以下四项是左右舷和前后火炮配置,数量加起来等于总数量.
refShip.lcannon = 80;
refShip.fcannon = 8;
refShip.bcannon = 22;
refShip.MaxCrew = 800; ---最多船员数,效果不太明显
refShip.MinCrew = 180;
refShip.BoardingCrew = 900; --参加甲板战的人,抢船时用到,多一些
refShip.GunnerCrew = 650; --枪手,参加陆战的人.攻城参战人员,
refShip.CannonerCrew = 360; --炮手,是大炮数量的2陪.
refShip.SailorCrew = 800; --水手数,和refShip.MaxCrew = 800相等.
refShip.SpeedRate = 123.4; ---航速,太大没意思
refShip.TurnRate = 312.0; --转变速度, 太大没意思
refShip.Price = 3000000; --出售价格,
refShip.HP = 996700; --船体血值
refShip.SP = 99100; --船帆血值
refShip.AbordageLocation = “Boarding Deck_01”;
refship.Type.Merchant = true; --船厂是否出售该船.
refship.Type.War = true;
...........
另:安装MOD-Supermod后,游戏中船坞可以买到任何船支。
3,火炮属性修改
用记事本打开x:\Program Files\Star Interactive\Age of Pirates – Caribbean Tales\Program\cannons\Cannons_init.c 在这个文件里可以修改某种火炮的装填时间等.
在这里主要是修改炮弹的装填时间,以下是以迫击炮为例,因为在战列舰修改里把迫击炮作为战列舰的最大配置类型:
makeref(rCannon,Cannon[CANNON_TYPE_MORTAR]);
rCannon.type = CANNON_NAME_MORTAR; --等号后面是迫击炮代码,可以加到上面Ships_init.c文件里某种船的里面
rCannon.caliber = 92;
rCannon.name = “caliber92”;
rCannon.picture = “cannons13”;
rCannon.Sound = “fort_cannon_fire”;
rCannon.ReloadTime = 40; -----装填时间,修改后的数据.
rCannon.Cost = 2000;
rCannon.Weight = 160;
……………………
4,召收的指挥官修改
本来想把指挥官改成MM,但在游戏里这些指挥官不像在1代里那样跟随主角战斗,所以就放弃了.
记事本打开G:\Program Files\Star Interactive\Age of Pirates – Caribbean Tales\Program\scripts\utils.c ,
查找以下字符:
if (CharacterType == OFFICER)
{
characters[iChar].type = WARRIOR;
//LAi_NPC_Equip(characters[iChar], sti(characters
[iChar].rank), true, false);
if(sti(characters[iChar].rank) 15)
{
characters[iChar].rank = 15;
}
}
修改 characters[iChar].rank = 15;
为:
characters[iChar].rank = 8015; ———-不要大于主角的等级数。
注意:召收的指挥官等级和主角的等级,以及前面修改的指挥官开始时的等级相关联。
5,让小贩出售所有武器物品
打开G:\Program Files\Star Interactive\Age of Pirates – Caribbean Tales\Program\scripts\utils.c
查找
void GiveItemToTrader(aref ch)
{
int irand;
DeleteAttribute(ch, “items”);
TakeNItems(ch,”blade1″, Rand(1) 1);
TakeNItems(ch,”gun1″, Rand(1) 1);
int iChance = 0;
float fLuck = GetSummonSkillFromName(pchar, SKILL_SNEAK);
fLuck = fLuck * (1.0 (0.5 * iGameArcade));
for(int i = 0; i ITEMS_QUANTITY, i )
{
if(!CheckAttribute(Items, “groupID”))
{
continue;
}
if(Items.groupID == SABERGUN_ITEM_TYPE)
{
continue;
}
if(!CheckAttribute(Items, “rare”))
{
continue;
}
if(CheckAttribute(Items, “uniq”) sti(items.uniq) != 0)
{
continue;
}
if(items.groupID == BLADE_ITEM_TYPE || items.groupID == GUN_ITEM_TYPE || items.groupID == SPYGLASS_ITEM_TYPE)
{
if(stf(items.rare) 10.0)
{
continue;
}
if(CheckAttribute(items, “minlevel”))
{
if(sti(items.minlevel) sti(pchar.rank) 3)
{
continue;
}
}
iChance = rand(100); //蝮?怦?镳噔桦�? 2 疣珥� 戾踵龛珈?镳?沐礤疰赍 栩屐?磬 觐疣犭??蝾疸钼鲶.
if(stf(items.rare) fLuck = iChance)
{
TakeNItems(ch,items [ i ] .id, 3);
}
}
}
}
void PlaceCharacter(aref ch, string group, string stype)
换成:
void GiveItemToTrader(aref ch)
{
int irand;
DeleteAttribute(ch, “items”);
TakeNItems(ch,”blade1″, Rand(1) 1);
TakeNItems(ch,”gun1″, Rand(1) 1);
int iChance = 0;
float fLuck = GetSummonSkillFromName(pchar, SKILL_SNEAK);
fLuck = fLuck * (11.0 (10.5 * iGameArcade));
for(int i = 0; i ITEMS_QUANTITY, i )
{
TakeNItems(ch,items [ i ] .id, 5); ————”5″是修改后的值,表示每种物品每次的出售数量
}
}
void PlaceCharacter(aref ch, string group, string stype)
和小贩对话时,游戏有几秒的停顿,是游戏正在读取数据,因为要把所有的东西列出来。
把绝壁剑的使用等级和伤害数据改大后,再买上后发放给你的随从指挥官,这样他们就一剑杀敌了。
6,人物名字汉化
记事本打开G:\Program Files\Star Interactive\Age of Pirates – Caribbean Tales\Program\characters\english\Characters_names.c ,
这个文件里按国家分了段落,分别是:
// English --英国
// Holland --荷兰
// French --法国
// Spain --西班牙
每个国家下面又有三个段,分别是:
// man names --男人名
// women names --女人名
// families --家族名
人物名字太多,这里以修改游戏中MM的名字为例:
查找以下字符:
// women names
n = 0;
n = AddStr2Array(sEnWomenNames, n, “Adelina,Alicia,Alison,Amanda,Amelia,Amy,Anne,Astrid,Audrey,Aurelia,Aurora,Avis”);
n = AddStr2Array(sEnWomenNames, n, “Bella,Camilla,Cecilia,Celia,Clare,Claudia,Diana,Edith,Eloise,Emily,Emma”);
……………..
特别注意每条引号里的名字个数,不是随意添加个数的,必须和原来的名字数目相等,每个名字用逗号分割开,如上面两条中,第一条里有12个,第二条有11个.可以改成以下内容:
// women names
n = 0;
n = AddStr2Array(sFrWomenNames, n, “张曼玉,刘嘉铃,林青霞,杨恭如,伊能静,黄奕,李小璐,孙俪,赵薇,周迅,马伊俐,王菲”);
n = AddStr2Array(sFrWomenNames, n, “萧蔷,胡慧中,王祖贤,李嘉欣,关之琳,王菲,曹颖,范冰冰,林青霞,李美凤,巩俐”);
……………………
文件共有四处// women names,所以最好把文件里四处MM的名字都改成中文.
游戏中非主角人物的名字是随机分配的,所以改了以后,你也不知道这些名字倒底用在谁的身上,也许王菲在酒吧里正在做女招待?或者你所召收的指挥官其中有个叫刘德华?
修改好后,把这个文件分别保存在characters目录下的english文件夹中,覆,盖,原,文,件,即可.若不行就再其他几个文件夹中的同名文件。
english (英国) ---汉化用的文件夹。
french (法国)
german (德国)
italian (意大利)
spanish (西班牙)
西方人名的格式是姓在后,名在前,
// families 字段下面是各个国家的姓,和名字组合在一起,所以这样修改后,前面是中文名字,后面还有英文字符的姓.有点儿美中不中,所以最好是把// families字段里面的姓都删除掉,只留下逗号.
后面附有只留下逗号的//families 字段文件附件,其他男性名字和女性名字自己再修改。
7,分辨率修改
记事本打开G:\Program Files\Star Interactive\Age of Pirates – Caribbean Tales\engine.ini文件,这是配置文件,查找
screen_x = 800 —-这是你原来所调的分辨率值
screen_y = 600 —-这是你原来所调的分辨率值
修改为:
screen_x = 1280 —–这里的数字参照你当前显卡的设置
screen_y = 1024 ——这里的数字参照你当前显卡的设置
保存文件。
运行游戏时不要点击config.exe,点击engine.exe。
如果之前在config.exe中已经把fullscreen Mode (全屏模式)对勾去掉。这样修改后,虽然不是在全屏模式,但游戏照样占满屏幕。
8,加勒比海盗2MOD-Supermod汉化技巧:
方法是安装好加勒比海盗2中文版后,把以下文件备份,再安装MOD-Supermod,安装完后把备份的汉化文件再覆盖原来的文件,然后把其他没有汉化的新英文文件汉化了,
文件位置参照christiedo 给出的加勒比海盗2汉化主要文件位置:
1,汉化字库文件:LG_Data文件夹
2,安装目录\RESOURCE\INI\texts下的english文件夹(这个文件夹里是界面文字:)
3,program\dialog\english文件夹(对话文字,主要增加了新的对话文件,也是主要汉化部分。)
4,根目录下engine.exe(必须)
9,妓院名字和小电影片断的修改
G:\Program Files\Star Interactive\Age of Pirates – Caribbean Tales\RESOURCE\INI\texts\english\commands_name.txt
游戏只提供了三个视频片断,自己可以加入更多的小电影来欣赏。
把需要的视频文件转换成WMV格式,放在G:\Program Files\Star Interactive\Age of Pirates – Caribbean Tales\RESOURCE\VIDEOS目录下,文件名的顺序依次是
Whore_0.wmv
Whore_1.wmv
Whore_2.wmv
—以上三个是原来的文件,下面的自己加进去。
Whore_3.wmv
Whore_4.wmv
…………
Whore_30.wmv等,
把rand(2)改成rand(30)即可。

1.《【海盗时代3 】海盗时代3(加勒比海盗2)内存修改的问题》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《【海盗时代3 】海盗时代3(加勒比海盗2)内存修改的问题》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/news/110434.html