给大富翁11的道具使用加自定义道具锁,可以实现道具使用不销毁功能
这是补丁篇的代码说明。一、添加道具上锁数据,需要修改GameManager类的Start方法。
1、使用DnSpy,打开“richman11_Data/Managed/Assembly-CSharp.dll”,全局搜索GameManager类,打开并选中Start方法,右键→编辑方法。
2、添加代码
先在Start方法外,定义一个公开的变量lockCardIdDic,用来存放上锁卡牌的id字典
public System.Collections.Generic.Dictionary<int, bool> lockCardIdDic = new System.Collections.Generic.Dictionary<int, bool>();之后,在Start方法中初始化该变量。
this.lockCardIdDic = new System.Collections.Generic.Dictionary<int, bool>();接着,检测本地配置文件“LockCardIds.txt”是否存在,不在则创建,存在则读取并给变量lockCardIdDic填充数据。
<blockquote>string filePath = System.IO.Path.Combine(Application.dataPath, "../LockCardIds.txt");3、保存修改,点击左下角的编译。
4、保存编译数据,点击文件→保存模块或全部保存,即可。这时候可以在其他地方的脚本中访问该字段。
二、添加销毁道具检测,使上锁数据生效。需要修改BattleBaseInfo类的DelCard方法。
1、全局搜索DelCard方法,并打开所在类。
2、编辑方法,右键→编辑方法
3、将原有的卡牌销毁代码进行替换
this.pNowCardBagList.RemoveAt(i);替换为
if (!this.bSelf)//先检测是不是自己,不是就销毁道具
{
this.pNowCardBagList.RemoveAt(i);
}
else if (!GameManager.Instance.lockCardIdDic.ContainsKey(cardid))//如果是自己,则检测是否道具上锁了,没有上锁就销毁道具
{
this.pNowCardBagList.RemoveAt(i);
}
4、编译,如果报错“BattleBaseInfo……”,点击跳转到当前行,并将BattleBaseInfo改为var,重新点击编译即可。
BattleBaseInfo staffInfo = BattleMgr.Base.GetStaffInfo(staffByGroup);改为
var staffInfo = BattleMgr.Base.GetStaffInfo(staffByGroup);
5、最终文件→全部保存,重新运行游戏即可!
**** Hidden Message *****
厉害
66666666666
看看隐藏内容是什么!谢谢!感谢分享!论坛因你更精彩! 32312321321321 66666666666666
66666太厉害了 666666666666
顶顶顶顶顶顶顶顶顶
谢谢分享
666666666666
666lhl66666 324324234234324 666666666666666
6666666666666
666666666666666
666666666
太复杂了,看不懂
烂墨穿石 发表于 2023-7-29 13:50
太复杂了,看不懂
可以直接使用我打包好的dll
https://bbs.blacksheepgame.com/thread-6429118-1-1.html
666666666666 这个方法 大富翁10 能用不?
444444444444
好高大上...
666666666666
666666666666666
感谢LZ的分享,很值得的~!!!
能不能直接发我一个覆盖
南侠香蕉 发表于 2023-10-10 00:11
能不能直接发我一个覆盖
修改大富翁11卡牌道具使用方式 - 《大富翁11》 - 3DMGAME论坛 - Powered by Discuz!
666666666666666666666666666666 感谢分享 感谢分享~