點石成金卷軸
天堂java技術教學-點石成金卷軸卷軸介紹:
使用限制:
1.只對武器有效.
2.該武器有祝福才可以使用.
使用成功:
例:白色的騎士范德之劍的ID(59),會變成祝福的騎士范德之劍ID(100059),對詛咒的物品也可以使用
使用後會保留原武器的強化等級,屬性(火、地、風、水)
1、核心代碼增加
代碼增加位置:
1). 類位置:com/lineage/server/module/item/etcitem/reel
2).新增加類名字:MIEEctWeaponBless
3).將編譯過的 MIEEctWeaponBless.class文件放入Server_Game.jar中
4).下面是核心代碼
[*]package com.lineage.server.module.item.etcitem.reel;
[*]
[*]import main.clientCheck.C_ItemName;
[*]
[*]import com.lineage.server.datatables.readonly.DTItem;
[*]import com.lineage.server.datatables.readwrite.DTCharItem;
[*]import com.lineage.server.identity.message.IDServerMsg;
[*]import com.lineage.server.interaction.net.packet.server.SPItemStatus;
[*]import com.lineage.server.interaction.net.packet.server.msg.SPMsgServer;
[*]import com.lineage.server.model.Instance.L1ItemInstance;
[*]import com.lineage.server.model.Instance.L1PcInstance;
[*]import com.lineage.server.module.MClsExecutorItem;
[*]import com.lineage.server.templates.TMPItem;
[*]import com.lineage.server.utils.UCirculateItem;
[*]
[*]public class MIEEctWeaponBless extends MClsExecutorItem {
[*]
[*] private MIEEctWeaponBless() {
[*] }
[*]
[*] public static MClsExecutorItem get() {
[*] return new MIEEctWeaponBless();
[*] }
[*]
[*] /**
[*] * 道具物件執行
[*] *
[*] * @param data
[*] * 參數
[*] * @param pc
[*] * 執行者
[*] * @param item
[*] * 物件
[*] */
[*] @Override
[*] public void execute(final int[] data, final L1PcInstance pc, final L1ItemInstance item) {
[*] final int targObjId = data; // 對象OBJID
[*] final L1ItemInstance tgItem = pc.getInventory().getItem(targObjId); // 目標物品
[*] if (tgItem == null) {
[*] return;
[*] }
[*]
[*] final int bless = tgItem.getItem().get_bless();
[*] boolean isErr = false;
[*]
[*] // 取得物件觸發事件
[*] final int use_type = tgItem.getItem().get_useType();
[*] switch (use_type) {
[*] case 1:// 武器
[*] if (bless == 0) {
[*] isErr = true;
[*] }
[*] break;
[*]
[*] default:
[*] isErr = true;
[*] break;
[*] }
[*]
[*] if (isErr) {
[*] pc.sendPacket(new SPMsgServer(79));// 没有任何事发生
[*] return;
[*] }
[*]
[*] // 防盜狀態
[*] if (pc.get_other().get_burglarTmp()) {
[*] // 3064 目前人物背包為防盜狀態,物品無法轉移、無法刪除、無法強化。
[*] pc.sendPacket(new SPMsgServer(IDServerMsg.BAG_READONLY));
[*] return;
[*] }
[*]
[*] int blessId = 0;
[*] if (bless == 1) { // 一般武器 ID前面加1
[*] String s = "0";
[*] switch (String.valueOf(tgItem.getItemId()).length()) {
[*] case 1:
[*] s = "10000";
[*] break;
[*] case 2:
[*] s = "1000";
[*] break;
[*] case 3:
[*] s = "100";
[*] break;
[*] case 4:
[*] s = "10";
[*] break;
[*] case 5:
[*] s = "1";
[*] break;
[*] }
[*] blessId = Integer.parseInt(s + String.valueOf(tgItem.getItemId()));
[*] } else if (bless == 2) { // 詛咒武器 ID前面2換成1
[*] String str = String.valueOf(tgItem.getItemId());
[*] blessId = Integer.parseInt("1" + str.substring(1));
[*] }
[*]
[*] final TMPItem blessItem = DTItem.get().getTemplate(blessId);
[*] if (blessItem == null) {
[*] pc.sendPacket(new SPMsgServer(79));// 没有任何事发生
[*] return;
[*] }
[*]
[*] pc.getInventory().removeItem(item, 1);
[*] pc.getInventory().removeItem(tgItem, 1);
[*]
[*] L1ItemInstance targeItem = DTItem.get().createItem(blessId);
[*] targeItem.setEnchantLevel(tgItem.getEnchantLevel());
[*] targeItem.setAttrEnchantLevel(tgItem.getAttrEnchantLevel());
[*] targeItem.setAttrEnchantKind(tgItem.getAttrEnchantKind());
[*]
[*] targeItem.setColor(tgItem.getColor());
[*]
[*] targeItem = UCirculateItem.storeItem(pc.getInventory(), targeItem);
[*] pc.sendPacket(new C_ItemName(targeItem));
[*] pc.sendPacket(new SPItemStatus(targeItem));
[*] try {
[*] new DTCharItem().updateItemColor(targeItem);
[*] } catch (Exception e) {
[*] // ...
[*] }
[*]
[*] }
[*]
[*]}
[*]
複製代碼
感 谢 分 享 感謝大大分享 6666666666666666666 厉害厉害厉害厉害厉害 这个可以的
我只会打6666666 謝謝分享哦 感谢大佬分享 感谢分享 学习中
页:
[1]
2