游戏狂人
 
- 贡献度
- 58
- 金元
- 12973
- 积分
- 1529
- 精华
- 0
- 注册时间
- 2011-6-22
|
本帖最后由 cafeguest 于 2019-9-8 11:24 编辑
嘛,又一个暗黑刷刷刷游戏,怎么可以不修改
工具:dnspy,但是反编译会报错,所以所有修改基于IL改公式数值
左键攻速
Zyklus.Player PlayerBase GetDelayBetweenPrimaryAttacks() 右键编辑IL 把1改成0.5就是两倍
右键攻速
同上,GetDelayBetweenSecondaryAttacks()
升级的时候崩怪的伤害
LevelUpDamage()
this.level_up_adapter_.pDamage.pValue.SetMode_Const(2f * this.GetPrimaryAttackDamageStat().GetValue()); 2改成200什么的
掉率
zuklus.Loot LootDropperComponent
Drop函数,133行
if (RandomUtility.TryChance(this.drop_paramters_chance_.pItem2.GetValue() * 10f))
*10f是后加的倍率
IL是
ldc.r4 10
mul
当然也可以写死为true
这块是掉不掉东西,没说什么东西,这个过了还有第二次roll,太低了也只会掉钱,可能俩都得改
Zyklus.Loot LootStaticDataContainer 第二个Drop函数
float num = UnityEngine.Random.Range(0f, 1f);
把1改小,降低掉钱几率,具体改多小,保持大于你要的东西掉率之和就行,具体是多少不好说
随机举例:一个箱子的掉落表里,0-0.1是掉钱0.1-0.2掉血瓶,改成0-0.1就只掉钱,0-0.2就是一半一半,但是后面如果还有一个0.2-0.3掉装备,那么必须改成0-0.3才能出装备。超过0.3的未定义都是掉钱。至于有几段,分别代表是什么,分别是多宽,代码里看不到,得看具体箱子的掉落表。
这里只是把两次roll的机制找到了。如果不打算弄清楚就只改第一个,乘以30,包你满地金币血瓶符文。
金币数量
DropCommonPart函数
num3 = Mathf.FloorToInt(UnityEngine.Random.Range(0.9f, 1.1f) * (float)quantity / (float)num);
0.9-1.1倍改大即可
还有一处需要修改,改成乘以一个立即数就可以。它算法是如果钱多就掉好几堆,前面几堆上限固定,最后一堆就是上面那行。我是把值乘以自己了,原来掉7块就掉49块,感觉有点多。
升级技能点
Zyklus.Player PlayerLevelStat RaiseOnLevelGained
this.total_ability_point_stat_.AddValue(1f);
this.ability_point_stat_.AddValue(1f);
1改10
经验倍数
Zyklus.Stat StatStaticDataContainer AddXPDirect
float modification_value = (float)xp_value * xp_gain;
后面乘以倍数即可
怒气获取倍数
Zyklus.Stat StatStaticDataContainer GetRageValue
return (num + num2) * 3f;
3是后加的倍率
符文耐久度不减
Zyklus.Rune RuneComponent UseRune()
this.current_durability_ -= 0f;
或者直接改类成员private float durability_use_rate = 0f;
弓妹的站撸技能伤害倍数
Zyklus.Player Linda ProgressStadyAim()
把_+_*_后面加一个*30倍就可以了,一箭正常,二箭死牛,三剑日天,遇事不决站着撸。。。我就是奥法!
法师小妹的追踪弹数量
Zyklus.player Lucy OnPrimaryAttackHit()
for (int i = 0; i < (int)this.currentExtraShotCount_ * 8; i++)
大儿子Mark的盾消耗速度
Zyklus.player Mark UpdateShieldOnHit()
-7和-3.5成倍改小
大儿子Mark盾相关的增益
UpdateProtectiveShield()
盾的最大值是50,改这个数值可以增减几种效果
成倍补充盾 this.number_of_protective_shields_ += shield_stack;
改盾上限(如果改了请注意修改这个文件的所有地方50保持一致) this.number_of_protective_shields_ = Mathf.Clamp(this.number_of_protective_shields_, 0, 50);
设置能量条 base.pPlayerEnergyComponent.SetPlayerEnergyByFactor((float)this.number_of_protective_shields_ / 50f);
对左键伤害的增益 this.primary_damage_shield_modifier.SetValue(1f + (float)this.number_of_protective_shields_ / 50f * this.shield_damage_multiplier_.GetValue());
对免伤的增益 this.shield_physical_reduction_modifier.SetValue((float)this.number_of_protective_shields_ / 50f * this.shield_level_upgrade_stat_.GetValue());
大儿子Mark左键技能距离半径加倍
Update()
Collider2D[] array = Physics2D.OverlapCircleAll(vector, this.cast_radius_.GetValue() * 3f, LayerMask.GetMask(new string[]
{
"EnemyHitable",
"OtherHitable"
}));
39 0087 ldarg.0
40 0088 ldfld class ['Assembly-CSharp-firstpass']Altar.Data.IStat Zyklus.Player.Mark::cast_radius_
41 008D callvirt instance float32 ['Assembly-CSharp-firstpass']Altar.Data.IStat::GetValue()
新增42 0092 ldc.r4 3
新增43 0097 mul
44 0098 ldc.i4.2
45 0099 newarr [mscorlib]System.String
小儿子kevin连击加攻速
Zyklus.Player KevinFrenzyComponent GetCurrentAttackSpeedFrenzyBonus()
return 3f + this.frenzyBonusUpgrade.GetValue() * (float)this.pCurrentStackCount * num;
1f改成3f,基础速度是3倍。如果在后面乘以一个倍数就是连击加成增倍。
以上修改可能无效,还在摸索欢迎分享
|
评分
-
3
查看全部评分
-
|