//修复组队人数超出副本限制,扣除门票的BUG
var CDungeon_get_limit_party_count = new NativeFunction(ptr(0x0822B4B4), 'int', ['pointer'], {"abi":"sysv"});
function hook_Tickets()
{
Interceptor.attach(ptr(0x0859EAC2),
{
onEnter: function (args)
{
var member_count = CParty_get_member_count(args[0]); //队伍人数
this.mp = args[1].add(2044);
this.oldmp = args[1].add(2044).readU16();
if (CDungeon_get_limit_party_count(args[1]) < member_count )
{
args[1].add(2044).writeU16(0); //不扣门票
}
},
onLeave: function (retval)
{
this.mp.writeU16(this.oldmp); //恢复扣除门票
}
});
}
var CDungeon_get_limit_party_count = new NativeFunction(ptr(0x0822B4B4), 'int', ['pointer'], {"abi":"sysv"});
function hook_Tickets()
{
Interceptor.attach(ptr(0x0859EAC2),
{
onEnter: function (args)
{
var member_count = CParty_get_member_count(args[0]); //队伍人数
this.mp = args[1].add(2044);
this.oldmp = args[1].add(2044).readU16();
if (CDungeon_get_limit_party_count(args[1]) < member_count )
{
args[1].add(2044).writeU16(0); //不扣门票
}
},
onLeave: function (retval)
{
this.mp.writeU16(this.oldmp); //恢复扣除门票
}
});
}