沉船研究第六弹——忠诚度研究重大突破,完美忠诚mod放出
终于把大家千呼万唤的忠诚度问题给解决了,这个确实比较难找,由于缺乏研究线索,研究这个的难度比前面任何一弹都要大。首先我从忠诚度的英文名在RESOURCE文件夹中追踪到了忠诚度在程序中对应的代码名,然后通过检索查到了和这个代码相关的一二十个文件,接下来一个一个排查,最后终于确定了罪魁祸首,真是辛苦啊。看在这次的辛苦程度上,希望大家多来顶一顶,也好让更多的朋友看到这个帖子。好了,下面言归正传:这个罪魁祸首文件是游戏目录Programscripts下面的officers.c文件。大家都知道声望高的副官做善事提高忠诚度,声望低的则相反。如果我们修改这个计算公式,就可以做到不管做善事做恶事都能提高忠诚度。想明白了这里面的逻辑关系大家应该就能看明白下面的程序段了。
下面是原文件相关的语句
for (int io = 0; io<GetPassengersQuantity(pchar); io++)
{ // 膻犷?镟耨噫桊 ?觐泐 羼螯 镳桉蝠囫蜩?祛驽?疋嚯栩?羼腓 磬 溴豚 屐?礤 镱 潴
iPassenger = GetPassenger(pchar, io);
if (iPassenger != -1)
{
if (CheckAttribute(characters, "loyality"))
{
if (characters.alignment == alignment)
{
characters.loyality = makeint(characters.loyality) + 1; }
else
{
characters.loyality = makeint(characters.loyality) - 1; }
}
}
}
for (i=1; i<COMPANION_MAX; i++)
{
cn = GetCompanionIndex(pchar, i);
if(cn!=-1)
{
sld = GetCharacter(cn);
if (CheckAttribute(sld, "loyality"))
{
if (sld.alignment == alignment)
{
sld.loyality = makeint(sld.loyality) + 1;
if (CheckAttribute(sld, "PGGAi")) PGG_ChangeRelation2MainCharacter(sld, 1); //navy }
else
{
sld.loyality = makeint(sld.loyality) - 1; // 耧弼栲朦眍 礤 溧脲?镳桠邃屙桢 ?0 ?爨? 镱蝾祗 黩钺 猁?玎镟?扈眢耦?潆 十分感谢搂主的帖子,看了之后对我帮助很大~ 感谢楼主 就差这种修改了 好东西 顶起 就是我要的
虽然属于挖坟了,我也要说啊,时隔4年,在我最近重温沉船时,发现此补丁对任命的撩舰船长毫无效果。都招至本船做副官,是有效的。
就是我要的 挖坟:@:@:@
页:
[1]