class PhysicsConfig(Model): """物理属性""" move_speed = FloatField(0x2A8, label='移动速度') jump_height = FloatField(0x2EC, label='跳跃高度') friction = FloatField(0x2D8, label='摩擦力') viewing_height = FloatField(0x350, label='可视高度')
class ShieldHealth(Value): """护甲和生命""" regen_rate = FloatField(0x98, label='回复速度') status = Field(0x104, label='切换') # Normal: 5, God: 6
class WeaponAmmo(Value): """弹药""" regen_rate = FloatField(0x84, label='回复速度') status = Field(0x104, label='切换') # Normal: 5, Infinite: 6 infinite = ToggleField(0x104, enable=6, disable=5, label='不减')
class SystemConfig(Model): """系统属性""" time_scale_multiplier = FloatField(0x328, label='时间流逝倍数') gravity = FloatField(0x3A0, label='重力')
class AbilityCooldown(Value): mult = FloatField(0x70, label='冷却倍数')
class TeamConfig(Model): """团队属性""" skill_mgr = ModelPtrField((0xB74, 0x58), SkillManager, label='技能') ability_cooldown = ModelPtrField(0xB64, AbilityCooldown, label='主技能冷却') damage_heals_self = FloatField(0xBF4) team_ammo_regen = FloatField(0xE58, label='团队弹药回复') explosives_heal_allies = FloatField(0xF90) bullets_heal_allies = FloatField(0xF54) badass_tokens = FloatField(0x1664, label='坏小子徽章') badass_bonuses = ArrayField((0x1678, 0), 14, Field(0)) # 坏小子加成效果 team_kill_skill_timer_mult = FloatField(0x18A4) bullets_resistance = FloatField(0x4A0, label='普通抗性') physical_resistance = FloatField(0x580, label='物理抗性') melee_resistance = FloatField(0x4C8, label='近战抗性') explosive_resistance = FloatField(0x5A8, label='爆炸抗性') shock_resistance = FloatField(0x5D0, label='闪电抗性') corrosive_resistance = FloatField(0x5F8, label='腐蚀抗性') fire_resistance = FloatField(0x620, label='火焰抗性') slag_resistance = FloatField(0x648, label='紫渣抗性') elemental_resistance = FloatField(0x4B4, label='元素抗性') grenades_resistance = FloatField(0x4DC, label='手榴弹/枪桶抗性') rockets_resistance = FloatField(0x4F0, label='火箭炮抗性') chock_time = FloatField(0x464, label='闪电时间') corrosive_time = FloatField(0x478, label='腐蚀时间') fire_time = FloatField(0x450, label='火焰时间') melee_damage = FloatField(0x374, label='近战伤害') physical_damage = FloatField(0x57C, label='物理伤害') explosive_damage = FloatField(0x554, label='爆炸伤害') shock_damage = FloatField(0x540, label='闪电伤害') corrosive_damage = FloatField(0x568, label='腐蚀伤害') fire_damage = FloatField(0x52C, label='火焰伤害') slag_damage = FloatField(0x590, label='紫渣伤害')
class PhysicsManager(Model): movement_mgr = ModelPtrField((0, 0x28, 0x5A0), MovementManager) view_height = FloatField((0x10, 0x28, 0x360), label='可视高度')
class SkillManager(Model): ability_status = Field(0x1C, label='主技能状态') ability_duration = FloatField((0, 0x74), label='主技能持续时间') skills = ArrayField(0x40, 33, ModelField(0, SkillItem))
class WeaponAmmo(Value): """弹药""" SIZE = 4 regen_rate = FloatField(0x80, label='回复速度')
class Movement(Model): coord = CoordField(0, label='坐标') air_time = FloatField(-0x14, label='空中滞留时间') # 初始30, 减慢为15 jump_height = FloatField(-0x18, label='跳跃高度') move_speed_mult = FloatField(-0x38, label='移动速度倍数')
class ResourceManager(Model): SIZE = 12 food = FloatField(0, label='食物') wood = FloatField(4, label='木材') rock = FloatField(8, label='石材') gold = FloatField(12, label='黄金')
class UnitType(Model): # type = ByteField(0x4, label="类型") # 类型 # dll_name = WordField(0xC, label="语言DLL:名称") # dll_hint = WordField(0xE, label="语言DLL:创建提示") # id1 = WordField(0x10, label="ID 1") # id2 = WordField(0x12, label="ID 2") # id3 = WordField(0x14, label="ID 3") # type2 = WordField(0x16, label="类别") # fn_str = ModelPtrField(0x18, StringField(0), 'fn名称指针') # name_str = ModelPtrField(0x20, StringField(0), '名称指针') # dll_help = Field(0xA8, label="语言DLL:帮助说明") # dll_hot_text = Field(0xAC, label="语言DLL:热键文字") # dll_hot_text_ = Field(0xB0, label="热键文字") hp_max = WordField(0x2A, label="HP上限") view = FloatField(0x2C, label="视野") shipload = ByteField(0x30, label="Shipload") collision = FloatField(0x34, label="碰撞") move_speed = FloatField(0xC8, label="移动速度") search = FloatField(0x104, label="搜索") work_efficiency = FloatField(0x108, label="工作效率") def_items = ModelPtrField(0x128, AtkDefItems) # 防御列表 atk_items = ModelPtrField(0x130, AtkDefItems) # 攻击列表 range_max = FloatField(0x138, label="最大射程") damage_radius = FloatField(0x13C, label="攻击范围") damage_type = Field(0x140, label="伤害方式") atk_interval = FloatField(0x144, label="攻击间隔") # 越小攻速越快(>0) atk_interval2 = FloatField(0x168, label="攻击间隔2") range_min = FloatField(0x15C, label="最小射程") base_def = WordField(0x160, label="显示的防御") base_atk = WordField(0x162, label="显示的攻击") range_base = FloatField(0x164, label="显示的射程") construction_time = WordField(0x182, label="建造时间") thrown_object = WordField(0x148, label="抛掷物单位") addition_thrown_object = WordField(0x1AC, label="附加抛掷物单位") min_thrown_object_count = WordField(0x19C, label="最小附加弹药数") thrown_object_area = CoordField(0x1A0, label="抛掷物产生区域")
class PopulationManager(Model): current = FloatField(0x2C, label='当前') total = FloatField(0x10, label='剩余') max = FloatField(0x80, label='上限')