注册 | 登录

游侠NETSHOW论坛





查看: 5617|回复: 21
打印 上一主题 下一主题

[原创] 被打残的请入,彻底解决健康度问题 [复制链接]

帖子
646
精华
0
积分
334
金钱
1222
荣誉
1
人气
0
评议
0
跳转到指定楼层
楼主
发表于 2009-5-31 23:01:49 |只看该作者 |倒序浏览
最近看到很多人因为角色受伤过多maxhealth下降导致无法恢复健康度,据说是可以找老鸨接任务恢复的,但是以前俄文版我反复尝试把跟老鸨每句话都翻译了也没成功过,英文版我没去尝试,因为没遇到maxhealth下降的情况。如果遇到了这个问题,又不介意修改源码解决的话可以用如下方法:
Microsoft AppLocale俄文方式启动记事本(或者UltraEdit,似乎主要是换行的问题)打开\Age of Pirates 2\Program\characters\RPGUtilite.c
找到这个邪恶D函数
void SetNewDayHealthMax()
{
    ref mainChr = GetMainCharacter();

    float maxhp = stf(mainChr.chr_ai.hp_max);
    float damg  = stf(mainChr.Health.weekDamg);

    mainChr.Health.weekDamg = 0.0;

    if (damg > (maxhp * 3.5))
    {
        AddCharacterMaxHealth(mainChr, -1);
    }
}

改为


void SetNewDayHealthMax()
{
    ref mainChr = GetMainCharacter();

    float maxhp = stf(mainChr.chr_ai.hp_max);
    float damg  = stf(mainChr.Health.weekDamg);

    mainChr.Health.weekDamg = 0.0;

    AddCharacterMaxHealth(mainChr, 60);

}


从此每当新的一天开始主角的最大健康度将恢复到最大值60,当然,你仍然需要通过各种途径恢复主角的健康度实时值。
这种修改不需要重新开档,但需要重新启动游戏

原始健康度恢复速度:
如果你有medic能力,那么在大地图上恢复速度为2健康度/天,非大地图为1健康度/天;如无medic那么以上速度分别为1健康度/天,0.5健康度/天
如果你当天受到最大hp的2/3以上的伤害,那么第二天你的健康度不升反降,减少的数值也根据是否有medic和受伤害大小而定
如果去妓院,恢复速度为5健康度/次

根据源代码,不修改情况下恢复健康度最大值的任务应该是教堂NightGuard任务,条件似乎是必须遭遇战斗

[ 本帖最后由 wizardslay 于 2009-6-1 00:56 编辑 ]
已有 1 人评分金钱 收起 理由
sun1129 + 10 + 1 文章不错,继续努力!

总评分: 金钱 + 10  + 1   查看全部评分

使用道具 举报

帖子
124
精华
0
积分
62
金钱
1260
荣誉
0
人气
0
评议
0
沙发
发表于 2009-5-31 23:31:49 |只看该作者
多谢,以前拜读老兄修改方法大作,收益不少,就是按照你的图文,副官基础能力和主角健康度找不到地址,
现在这个可以一劳永逸了,不过借问一句:“此方法是否需要重新开档?"

使用道具 举报

帖子
646
精华
0
积分
334
金钱
1222
荣誉
1
人气
0
评议
0
板凳
发表于 2009-5-31 23:42:32 |只看该作者
不需要,重新开启游戏即可
如果不熟悉沉船的数据结构用GM8修改健康度确实比较麻烦,英文版提供了源代码,这样GM8基本可以扔掉咯

使用道具 举报

帖子
124
精华
0
积分
62
金钱
1260
荣誉
0
人气
0
评议
0
地板
发表于 2009-5-31 23:47:55 |只看该作者
非常感谢,UltraEdit不大会用,还好微软翻译软件会用,只要健康度上限问题解决,就什么都好了,
而且可以不浪费辛苦打的存档

使用道具 举报

帖子
321
精华
0
积分
161
金钱
3429
荣誉
0
人气
0
评议
0
5#
发表于 2009-6-1 00:02:37 |只看该作者
原来每周的收到的伤害每超过生命值的3.5倍健康度就减1,大家得注意啊。请楼主翻译一下健康度是如何涨回来的,后边看不大懂啊。

使用道具 举报

帖子
646
精华
0
积分
334
金钱
1222
荣誉
1
人气
0
评议
0
6#
发表于 2009-6-1 00:50:19 |只看该作者
什么叫怎么涨回来的....
根据源代码,如果你有medic能力,那么如果在大地图上恢复速度为2健康度/天,非大地图为1健康度/天;如无medic那么以上速度分别为1健康度/天,0.5健康度/天
如果你当天受到最大hp的2/3以上的伤害,那么第二天你的健康度不升反降,减少的数值也根据是否有medic和受伤害大小而定
如果去妓院,恢复速度为5健康度/次
我又查了下代码,健康度最大值跟妓院和老鸨应该没关系,应该是教堂某任务完成后加的。很可能是“夜间守卫任务”,有相应存档的同学可以测试一下。

使用道具 举报

帖子
321
精华
0
积分
161
金钱
3429
荣誉
0
人气
0
评议
0
7#
发表于 2009-6-1 01:41:33 |只看该作者
“夜间守卫任务”,不会加的,我做过..................

使用道具 举报

帖子
646
精华
0
积分
334
金钱
1222
荣誉
1
人气
0
评议
0
8#
发表于 2009-6-1 07:37:53 |只看该作者
你是在最大健康度下降以后做的吗?

使用道具 举报

帖子
646
精华
0
积分
334
金钱
1222
荣誉
1
人气
0
评议
0
9#
发表于 2009-6-1 08:34:42 |只看该作者
大家可以自行查一下对话文件
恢复最大健康度有两种情况,一种就是NightGuard事件,结果加2点健康上限,对话是
"Our Father, ",
", mentioned that you stood the night watch in our church.",
"In addition, it's in my power to diminish your sins before ",

另一事件是healthAdd_4事件,如果主角金钱大于10W则扣掉10W加4点健康上限,相关对话为:
"Padre.",
"Father.",
"Hundred thousand in gold would be a sufficient payment for the miracle of healing.",
"How much?! You are insane. I'll pay such a sum once I rob a few churches.",
"That's too much for me. Looks like it's true -- money can't buy health.",
"I agree!",

[ 本帖最后由 wizardslay 于 2009-6-1 09:51 编辑 ]

使用道具 举报

帖子
446
精华
0
积分
249
金钱
1347
荣誉
2
人气
0
评议
0
10#
发表于 2009-6-1 08:45:21 |只看该作者
healthAdd_4事件的触发条件是什么,有概率么?
只有金钱大于1W一个条件么?还是前提必须健康上限不满?

使用道具 举报

帖子
446
精华
0
积分
249
金钱
1347
荣誉
2
人气
0
评议
0
11#
发表于 2009-6-1 08:51:26 |只看该作者
貌似有不少人是在巴拿马行动被火枪打残的。那个任务我也做过,一枪打我半管血,这个行动里我记得至少中过七八枪,也没见健康度下降。健康度上限下降更是没见过。

使用道具 举报

帖子
646
精华
0
积分
334
金钱
1222
荣誉
1
人气
0
评议
0
12#
发表于 2009-6-1 09:50:54 |只看该作者
很可能是下降了你没发现,因为健康度下降不一定导致属性降低,健康等级的算法是
健康等级=取整((健康度+9)/10);
所以健康度低于51的时候,健康等级才会为5,也就是所有属性降一,只要健康度大于等于51,健康等级为6,那么属性不受影响
这些事件的引发顺序是,"First time"-->"node_3"-->"work"-->"healthAdd_1"-->"healthAdd_2"-->"healthAdd_3"-->"healthAdd_4"-->"healthAdd_5",扣钱和"miracle healing"都是在里完成的。
BTW:我没学过C语言,对C语言语法不是很肯定,有可能部分理解错误
一个条件是健康等级低于6金钱大于10W,另一个条件不清楚变量的含义但是似乎不太重要,有空结合游戏再研究研究....

[ 本帖最后由 wizardslay 于 2009-6-1 09:52 编辑 ]

使用道具 举报

帖子
446
精华
0
积分
249
金钱
1347
荣誉
2
人气
0
评议
0
13#
发表于 2009-6-1 10:00:14 |只看该作者

回复 #12 wizardslay 的帖子

也就是说,只要健康等级不掉,在海上漂几天就恢复正常了?

使用道具 举报

帖子
646
精华
0
积分
334
金钱
1222
荣誉
1
人气
0
评议
0
14#
发表于 2009-6-1 10:25:36 |只看该作者
对的,每天受伤别超过3.5倍的最大hp就一点事都没有了
健康等级掉了也照样回复...

使用道具 举报

帖子
295
精华
0
积分
148
金钱
1744
荣誉
0
人气
0
评议
0
15#
发表于 2009-6-1 11:39:10 |只看该作者
高呼LZ万岁,然后收藏起来 .... 放心开打去喽!

使用道具 举报

帖子
1879
精华
1
积分
1290
金钱
4079
荣誉
15
人气
9
评议
0
16#
发表于 2009-6-1 14:25:44 |只看该作者
收下,每天受伤不超过hp最大的3.5倍就行了,所以杀人的让保镖去干吧,自己一边看着,除非枪船要亲自动手

使用道具 举报

帖子
446
精华
0
积分
249
金钱
1347
荣誉
2
人气
0
评议
0
17#
发表于 2009-6-1 15:25:01 |只看该作者
“每天”是以零点划分的么?那样的话连续硬仗等到临近午夜开打可能比较好。

使用道具 举报

帖子
646
精华
0
积分
334
金钱
1222
荣誉
1
人气
0
评议
0
18#
发表于 2009-6-1 16:36:21 |只看该作者
没错,0点划分.............

使用道具 举报

帖子
22
精华
0
积分
11
金钱
67
荣誉
0
人气
0
评议
0
19#
发表于 2009-6-13 23:20:52 |只看该作者
膜拜,在膜拜,拿走

使用道具 举报

帖子
1879
精华
1
积分
1290
金钱
4079
荣誉
15
人气
9
评议
0
20#
发表于 2009-6-14 02:00:47 |只看该作者
联系搞鬼船,健康为0了,全部-5.其他全减到1.要恢复2个月

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-6-2 08:29 , Processed in 0.343122 second(s), 13 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到