- UID
- 15354978
- 主题
- 13
- 阅读权限
- 20
- 帖子
- 58
- 精华
- 0
- 积分
- 41
- 金钱
- 774
- 荣誉
- 1
- 人气
- 12
- 在线时间
- 177 小时
- 评议
- 0
- 帖子
- 58
- 精华
- 0
- 积分
- 41
- 金钱
- 774
- 荣誉
- 1
- 人气
- 12
- 评议
- 0
|
本帖最后由 bbitt88 于 2020-6-9 21:19 编辑
四、上边给大家讲到了UDATA.CPP 中对于游戏中单位的修改。通过之前提到的对比方式我们可以在以下几个文件中查到并修改相关的一些数据。
AADATA.CPP 里面存放的是飞行单位的数据
BDATA.CPP 里面存放的是建筑物的数据
BBDATA.CPP 里面可以找到子弹相关数据(修改武器属性可以用到)
CONST.CPP 里面存放的是常量数据,我们可以在里面找到武器属性、弹头伤害等相关的数据
DEFINE.H 里面是一些定义 比如武器有哪些、弹头有哪些,因为没深层次研究所以不知道是否在这里增加武器。因为就算光在这里增加武器,没修改其他相关代码也没用。
飞行单位和建筑物的修改,我就不做过多介绍了,仔细看好 // 符号右边的相关注释,实在不知道怎么改对比一下同类其他单位或建筑物的代码,一般不会有什么大问题。
我们接下来讲一下CONST.CPP 中武器伤害的修改。
首先我们先通过之前查找单位相关代码中找到关于 第一武器和第二武器的代码。然后在 CONST.CPP 中查找你相关的武器代码,例如 WEAPON_M60MG (jeep的M60机枪)
可以看到以下的代码:
***************************************************************************
** 这些是各种武器及其特点
**
** 子弹类型 伤害,再次发射间隔,范围, 声音,动画 //右边的是武器代码
*/
WeaponTypeClass const Weapons[WEAPON_COUNT] = {
{BULLET_SNIPER, 125, 40, 0x0580, VOC_SNIPER, ANIM_NONE}, // WEAPON_RIFLE
{BULLET_SPREADFIRE, 25, 50, 0x0400, VOC_MINI, ANIM_GUN_N}, // WEAPON_CHAIN_GUN
{BULLET_BULLET, 1, 7, 0x01C0, VOC_RIFLE, ANIM_NONE}, // WEAPON_PISTOL
{BULLET_BULLET, 15, 20, 0x0200, VOC_MGUN2, ANIM_NONE}, // WEAPON_M16
{BULLET_TOW, 30, 60, 0x0400, VOC_BAZOOKA,ANIM_NONE}, // WEAPON_DRAGON
{BULLET_FLAME, 35, 50, 0x0200, VOC_FLAMER1,ANIM_FLAME_N}, // WEAPON_FLAMETHROWER
{BULLET_FLAME, 50, 50, 0x0200, VOC_FLAMER1,ANIM_FLAME_N}, // WEAPON_FLAME_TONGUE
{BULLET_CHEMSPRAY, 80, 70, 0x0200, VOC_FLAMER1,ANIM_CHEM_N}, // WEAPON_CHEMSPRAY
{BULLET_GRENADE, 50, 60, 0x0340, VOC_TOSS, ANIM_NONE}, // WEAPON_GRENADE
{BULLET_APDS, 25, 60, 0x0400, VOC_TANK2, ANIM_MUZZLE_FLASH}, // WEAPON_75MM
{BULLET_APDS, 30, 50, 0x04C0, VOC_TANK3, ANIM_MUZZLE_FLASH}, // WEAPON_105MM
{BULLET_APDS, 40, 80, 0x04C0, VOC_TANK4, ANIM_MUZZLE_FLASH}, // WEAPON_120MM
{BULLET_APDS, 40, 60, 0x0600, VOC_TANK4, ANIM_MUZZLE_FLASH}, // WEAPON_TURRET_GUN
{BULLET_SSM, 75, 80, 0x0500, VOC_ROCKET1,ANIM_NONE}, // WEAPON_MAMMOTH_TUSK
{BULLET_SSM2, 75, 80, 0x0600, VOC_ROCKET1,ANIM_NONE}, // WEAPON_MLRS
{BULLET_HE, 150, 65, 0x0600, VOC_TANK1, ANIM_MUZZLE_FLASH}, // WEAPON_155MM
{BULLET_BULLET, 15, 30, 0x0400, VOC_MGUN11, ANIM_GUN_N}, // WEAPON_M60MG
{BULLET_SSM, 60, 35, 0x0780, VOC_ROCKET2,ANIM_NONE}, // WEAPON_TOMAHAWK
{BULLET_SSM, 60, 40, 0x0680, VOC_ROCKET2,ANIM_NONE}, // WEAPON_TOW_TWO
{BULLET_NAPALM, 100, 20, 0x0480, VOC_NONE, ANIM_NONE}, // WEAPON_NAPALM
{BULLET_LASER, 200, 90, 0x0780, VOC_LASER, ANIM_NONE}, // WEAPON_OBELISK_LASER
{BULLET_SAM, 50, 50, 0x0780, VOC_ROCKET2,ANIM_NONE}, // WEAPON_NIKE
{BULLET_HONEST_JOHN, 100, 200, 0x0A00, VOC_ROCKET1,ANIM_NONE}, // WEAPON_HONEST_JOHN
{BULLET_HEADBUTT, 100, 30, 0x0180, VOC_DINOATK1,ANIM_NONE}, // WEAPON_STEG
{BULLET_TREXBITE, 155, 30, 0x0180, VOC_DINOATK1,ANIM_NONE}, // WEAPON_TREX
#ifdef PETROGLYPH_EXAMPLE_MOD
{BULLET_NUKE_LOB, 150, 130, 0x0B00, VOC_NUKE_LOB, ANIM_MUZZLE_FLASH}, // WEAPON_NUKE_LOB
#endif //PETROGLYPH_EXAMPLE_MOD
从上边代码可以看出M60机枪的默认属性
使用的子弹类型是BULLET_BULLET(普通子弹),伤害值——15,射击间隔(暂定为15=1秒)2秒,射击距离为0x0400(怎么计算不知道),声音为VOC_MGUN11,射击动画 ANIM_GUN_N
这段代码结合其他武器代码,我们可以修改伤害值不用说,比如把射击距离改的和155MM舰炮一样0x0600,子弹类型改成 BULLET_HE(高爆)或者 BULLET_NUKE_LOB (核弹)
随你想象与试验,一切皆有可能。
|
|