frida锻造

function smithing(user, level) {

	var inven = CUserCharacInfo_getCurCharacInvenW(user);
	var equ = CInventory_GetInvenRef(inven, INVENTORY_TYPE_ITEM, 9);
	var itemId = Inven_Item_getKey(equ)

	var itemData = CDataManager_find_item(G_CDataManager(), itemId);
	var equ_type = itemData.add(141 * 4).readU32();
	var characName = api_CUserCharacInfo_getCurCharacName(user);
	var equipmentName = api_CItem_GetItemName(itemId);

	if (Inven_Item_getKey(equ)) {
		if (equ_type == 10) {
			var upgrade_level = equ.add(51).readU8();
			if (upgrade_level == 7) {
				api_CUser_SendNotiPacketMessage(user, "锻造失败:该武器的锻造等级已经为最大限制!", 0);
				return;
			} else {
				equ.add(51).writeU8(level);
				CUser_SendUpdateItemList(user, 1, 0, 9);
				successTag = true;
				console.log("success!!!")
				api_CUser_SendNotiPacketMessage(user, "恭喜玩家:" + [characName] + "武器:" + [equipmentName] + "锻7成功!", 0);
				return;
			}
		} else {
			api_CUser_SendNotiPacketMessage(user, "锻造失败:该装备不是武器!", 0);
			return;
		}
	}
}

函数首先获取玩家的物品栏信息(inven),然后获取第9个物品栏中的装备(equ)。然后使用该装备的itemId查找物品数据(itemData),并从中获取装备类型(equ_type)。
如果获取到的装备不为空(Inven_Item_getKey(equ)),则判断该装备是否为武器(装备类型为10)。如果是武器,并且它的锻造等级已经达到最高级别(7),则无法进行锻造;否则将其锻造等级修改为7,并发送更新物品栏的请求。
最后,成功进行锻造后会将successTag值设置为true,并向玩家发送”锻造成功“的提醒消息;若出现了错误,则向玩家发送相应的错误提醒消息。其实跟跨界石原理差不多,在pvf中构建一个道具,对应上编号即可,此代码还可进行优化,可以自行研究下!!!!

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容