【FC】热血足球联盟 内存使用记录

来源:互联网 发布:lol小米淘宝店 编辑:程序博客网 时间:2024/05/10 23:06
pid(player_id): 玩家编号,00--03。
rid(role_id): 角色编号,00--0B,有时0C对应球。
tid(team_id): 队伍编号,00/01。


一般方向:上为00,顺时针每45度加20。






0004,pid: key
A B Select Start
U D L R


0008,pid: changed_key


0045: ?


0057: 模式。高4位:League 8,VS 4,PK 2;低4位:Easy 0,Normal 1,Hard 2。
注意是按位的,比如League模式点球时高四位为A。


0059: 游戏状态,比赛进行中为02,球出界为06,开球前为01,进球后03/04/05。
005A: 和0059差不多,切换时有区别。


005C: 比赛状态,平常为00,游戏暂停为80,开球前为01,边线球44,门球/角球48。


005D: 玩家数,01--04。


0080: 球的贴图。


0130,rid: 对象处于什么样的地面上(球的在013C),00草,02泥,03沙地。


0300: 计数器。


坐标(低位 高位)(0C处是球的):
x:0314,rid 0327,rid
y:034D,rid 0360,rid
z:0386,rid 0399,rid


球的坐标为:
x:0320 0333
y:0359 036C
z:0392 03A5




速率(低位 高位)(0C处是球的):
x:03E8,rid 03F6,rid
y:
z:         042E,rid


球的速率为:
x:03F4 0402
y:
z:     043A




0399,rid: 对象是否陷在泥沙中(球的在03A5),FF陷入,00没有。


0459,rid: 球员状态(0465为球的状态)。


046C,rid: 对于门将,触发侧扑时00上,01下。(原版中写0459,rid时会清这里为00,导致侧扑反向的bug)
球员摆出射门动作时为01。(改的蓄力射门中,蓄力时这里要补上写01)


0479,rid: 用于触发球员动作,做动作都是写一下这里即可,有程序负责根据这里写0459,rid。这里平时为FF。


0486,rid: 角色状态,信息按位表达,从高到低依次为:(0492为球的状态)
是否跳起,是否控球,X,X,
是否跑动中(别的没看,至少GK阿克塞尔跳时该位也为1),X,X,X。


0492: 球的状态,信息按位表达,从高到低依次为:
是否在空中,是否被持有,X,是否被踩住,
X,是否为射门持续状态(不受重力影响的状态),X,X。


0496,rid: 角色做动作的方向。


04A3,rid: 角色朝向,右00,左80。


04B0,rid: 角色对应的方向键,无为FF。


04D6: 当前(或最后)控球者的role_id。球出界时这里写谁谁去开球。


04E4,rid: 实时体力。球的能量在04F0。


04F1,rid: 技能。


04FD,rid: ?


050D: 球的湿度,00--FF。常以正负作为分支条件。


050F: 球状态,射门触发处写02即出红球。
0510: 球轨迹。00普通 01下落 02红球爬升 03弹起后 04平飞 05静止 06竖直上升 07? 08慢飞 09上挑 0A升天(无效)


0512: 球相关?


0519--051A: 界外球开球点的y坐标。
角球点的y坐标只有两种情况,0030和0158(同边线球y坐标)。
门球点的y坐标为0090和00F0。


0525: 球带电的剩余时间。00为不带电。


0526: 跑动颠球时的计数,每一下大约是01--0E。


052A,tid: 球队是否持球,持球为80,没持球为00。


052C,tid: 队伍编号,League模式和VS模式下好像有的位有区别。


052E,tid: 得分。


0532,rid: 球员在该队的编号,热血00--0B,其它00--05。


055A: 音乐编号。


0568,pid: 玩家控制的role_id。


056C,pid: 右移后的key,仅在包含A或B时(包括A+B)有效(有效值含方向键),否则为00。
0570,pid: 变化的056C,pid。
0574,pid: 右移后的key,仅在AB二者有且只有一个的时候有效(有效值含方向键),否则为00。
0578,pid: A或B键持续按住的计数,不含A+B。
057C,pid: 连续的相同方向键,用于加速跑。


0584,pid: last方向键无变化的计数。


0589--058A: 游戏开始时,演示画面的倒计时。


05BF--05C1: 比赛剩余时间。


05CC: 点球的进程,先是00--09,相当于踢球者的rid,之后是80--89循环。


05E2: 进球后的计数,自增至足够大时切至观众席画面。


05F6: 屏幕中心与球的关系,无人持球00,向右攻时为30,向左攻时为D0。


05FB: 场地,低4位是类型,0草地,1土地,2沙地;
高4位是积水状况,从少到多为0,1,4,5。


05FD: 风力,原版范围00--09。
05FE: 风向。


0650,rid: 最高位表示角色是否由AI控制;低4位为场上实时心情,半场结束后会被写到05D5--05E0(热血12人的心情)去。






//============0678起的若干字节多与对AI的命令有关
0678,tid: 命令类型。00传球,01射门,02防守A,03防守B,FF空。大致可以理解为按位存储的信息。
067A,tid: 高4位和低4位分别指示一个rid,大约表示谁离球最近,也就是命令下给谁。F代表是玩家控制的角色。
一般高四位与低四位相同,转换时低四位换到高四位。
玩家按键是否做动作、是否下命令都是看这里的低四位(不是同一处代码),原版中一般为F则做动作,不为F则下命令。
067C,tid: 命令伴随的方向。
* 偏移为0A/0B(GK的rid)时,对应0686/0687,GK是否出了禁区,80出了,00没出。这么写只是利用了rid。
067E,tid: 好像有时是命令伴随的方向。
0680,tid:
0682,tid:
0684,tid:


0686,tid: GK是否出了禁区,00没出,80出了。








068A: 边线球和角球:去捡球时为00,捡到球走向开球位置为01,开球动作过程为02。
门球分00到04,试试只给01能不能去捡球。
















原创粉丝点击