⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 l1iteminstance.java

📁 网络游戏天堂1的java源代码。。。。。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	
	public int getMpr() {
		return _Mpr;
	}
	public void setMpr(int i) {
		_Mpr = i;
	}
	
	private int _Hpr = 0;
	
	public int getHpr() {
		return _Hpr;
	}
	public void setHpr(int i) {
		_Hpr = i;
	}
	
	private int _addHp = 0;
	
	public int getaddHp() {
		return _addHp;
	}
	public void setaddHp(int i) {
		_addHp = i;
	}
	
	private int _addMp = 0;
	
	public int getaddMp() {
		return _addMp;
	}
	public void setaddMp(int i) {
		_addMp = i;
	}
	
	private int _addSp = 0;
	
	public int getaddSp() {
		return _addSp;
	}
	public void setaddSp(int i) {
		_addSp = i;
	}
	//飾品強化卷軸
	//裝備保護卷軸  by missu0524
	private boolean proctect = false;

	public boolean getproctect() {
		return proctect;
	}
	public void setproctect(boolean i) {
		proctect = i;
	}
	//~裝備保護卷軸  by missu0524
	
	//屬性強化捲軸
	/**
	* @return 
	* 0:無, <br>1:地, <br>2:火, <br>4:水, <br>8:風
	*/
	public int getAttribute() {
	    return _attribute;
	}
	public void setAttribute(int attribute) {
	    _attribute = attribute;
	}
	public int getAttributeLevel() {
	    return _attributeLevel;
	}
	public void setAttributeLevel(int attributeLevel) {
	    _attributeLevel = attributeLevel;
	}
	public String weaponAttrName(){
	    String name = "";
	    int lvl = getAttributeLevel();
	    switch(getAttribute()){
	    case 1:
	        if(lvl == 1){
	            name = "地";
	        }else if(lvl == 2){
	            name = "崩裂";
	        }else if(lvl == 3){
	            name = "地靈";
	        }
	        break;
	    case 2:
	        if(lvl == 1){
	            name = "火";
	        }else if(lvl == 2){
	            name = "爆炎";
	        }else if(lvl == 3){
	            name = "火靈";
	        }
	        break;
	    case 4:
	        if(lvl == 1){
	            name = "水";
	        }else if(lvl == 2){
	            name = "海嘯";
	        }else if(lvl == 3){
	            name = "水靈";
	        }
	        break;
	    case 8:
	        if(lvl == 1){
	            name = "風";
	        }else if(lvl == 2){
	            name = "暴風";
	        }else if(lvl == 3){
	            name = "風靈";
	        }
	        break;
	    default:
	        break;
	    }
	    return name;
	}
	//~屬性強化捲軸
	
	/**
	 * アイテムの状態からサーバーパケットで利用する形式のバイト列を生成し、返す。
	 */
	public byte[] getStatusBytes() {
		int itemType2 = getItem().getType2();
		int itemId = getItemId();
		BinaryOutputStream os = new BinaryOutputStream();
		
		if (itemType2 == 0) { // etcitem
			switch (getItem().getType()) {
			case 2: // light
				os.writeC(22); // 明るさ
				os.writeH(getItem().getLightRange());
				break;
			case 7: // food
				os.writeC(21);
				// 栄養
				os.writeH(getItem().getFoodVolume());
				break;
			case 0: // arrow
			case 15: // sting
				os.writeC(1); // 打撃値
				os.writeC(getItem().getDmgSmall());
				os.writeC(getItem().getDmgLarge());
				break;
			default:
				os.writeC(23); // 材質
				break;
			}
			os.writeC(getItem().getMaterial());
			os.writeD(getWeight());
			
		} else if (itemType2 == 1 || itemType2 == 2) { // weapon | armor
			if (itemType2 == 1) { // weapon
				// 打撃値
				os.writeC(1);
				os.writeC(getItem().getDmgSmall());
				os.writeC(getItem().getDmgLarge());
				os.writeC(getItem().getMaterial());
				os.writeD(getWeight());
			} else if (itemType2 == 2) { // armor
				// AC
				os.writeC(19); 
				int ac = ((L1Armor) getItem()).get_ac();
				if (ac < 0) {
					ac = ac - ac - ac;
				}
				os.writeC(ac);
				os.writeC(getItem().getMaterial());
				os.writeD(getWeight());
			}
			// 強化数
			//飾品強化卷軸
			if (getEnchantLevel() != 0) { 
	               os.writeC(2);
	               if (getItem().getType2() !=2){
	               os.writeC(getEnchantLevel());
	               } else if (getItem().getType2() == 2
	               &&getItem().getType() == 8
	               ||getItem().getType() == 9
	               ||getItem().getType() == 10
	               ||getItem().getType() == 12){
	               os.writeC(0);
	               } else {
	                os.writeC(getEnchantLevel());
	               }
	               }
			//飾品強化卷軸
			// 損傷度
			if (get_durability() != 0) {
				os.writeC(3);
				os.writeC(get_durability());
			}
			// 両手武器
			if (getItem().isTwohandedWeapon()) {
				os.writeC(4);
			}
			// 攻撃成功
			if (itemType2 == 1) { // weapon
				if (getItem().getHitModifier() != 0) {
					os.writeC(5);
					os.writeC(getItem().getHitModifier());
				}
			} else if (itemType2 == 2) { // armor
				if (getItem().getHitModifierByArmor() != 0) {
					os.writeC(5);
					os.writeC(getItem().getHitModifierByArmor());
				}
			}
 			// 追加打撃
			if (itemType2 == 1) { // weapon
				if (getItem().getDmgModifier() != 0) {
					os.writeC(6);
					os.writeC(getItem().getDmgModifier());
				}
			} else if (itemType2 == 2) { // armor
				if (getItem().getDmgModifierByArmor() != 0) {
					os.writeC(6);
					os.writeC(getItem().getDmgModifierByArmor());
				}
			}
			// 使用可能
			int bit = 0;
			bit |= getItem().isUseRoyal()   ? 1 : 0;
			bit |= getItem().isUseKnight()  ? 2 : 0;
			bit |= getItem().isUseElf()     ? 4 : 0;
			bit |= getItem().isUseMage()    ? 8 : 0;
			bit |= getItem().isUseDarkelf() ? 16 : 0;
			bit |= getItem().isUseDragonknight() ? 32 : 0;
			bit |= getItem().isUseIllusionist() ? 64 : 0;
			// bit |= getItem().isUseHiPet() ? 64 : 0; // ハイペット
			os.writeC(7);
			os.writeC(bit);
			// 弓の命中率補正
			if (getItem().getBowHitModifierByArmor() != 0) {
				os.writeC(24);
				os.writeC(getItem().getBowHitModifierByArmor());
			}
			// 弓のダメージ補正
			if (getItem().getBowDmgModifierByArmor() != 0) {
				os.writeC(35);
				os.writeC(getItem().getBowDmgModifierByArmor());
			}
			// MP吸収  //eric1300460
			if (itemId == 126 || itemId == 127 || getItem().get_getMp()>0) { // マナスタッフ、鋼鉄のマナスタッフ
				os.writeC(16);
			}
			// HP吸収 //eric1300460
			if (itemId == 262 || getItem().get_getHp()>0) { // ディストラクション
				os.writeC(34);
			}
			// STR~CHA
			if (getItem().get_addstr() != 0) {
				os.writeC(8);
				os.writeC(getItem().get_addstr());
			}
			if (getItem().get_adddex() != 0) {
				os.writeC(9);
				os.writeC(getItem().get_adddex());
			}
			if (getItem().get_addcon() != 0) {
				os.writeC(10);
				os.writeC(getItem().get_addcon());
			}
			if (getItem().get_addwis() != 0) {
				os.writeC(11);
				os.writeC(getItem().get_addwis());
			}
			if (getItem().get_addint() != 0) {
				os.writeC(12);
				os.writeC(getItem().get_addint());
			}
			if (getItem().get_addcha() != 0) {
				os.writeC(13);
				os.writeC(getItem().get_addcha());
			}
			/*
			// HP, MP
			if (getItem().get_addhp() != 0) {
				os.writeC(14);
				os.writeH(getItem().get_addhp());
			}
			if (getItem().get_addmp() != 0) {
				os.writeC(32);
				os.writeC(getItem().get_addmp());
			}
			*/
			// MR
			if (getMr() != 0) {
				os.writeC(15);
				os.writeH(getMr());
			}
			/*
			// SP(魔力)
			if (getItem().get_addsp() != 0) {
				os.writeC(17);
				os.writeC(getItem().get_addsp());
			}
			*/
			// ヘイスト
			if (getItem().isHasteItem()) {
				os.writeC(18);
			}
			/*
			// 火の属性
			if (getItem().get_defense_fire() != 0) {
				os.writeC(27);
				os.writeC(getItem().get_defense_fire());
			}
			// 水の属性
			if (getItem().get_defense_water() != 0) {
				os.writeC(28);
				os.writeC(getItem().get_defense_water());
			}
			// 風の属性
			if (getItem().get_defense_wind() != 0) {
				os.writeC(29);
				os.writeC(getItem().get_defense_wind());
			}
			// 地の属性
			if (getItem().get_defense_earth() != 0) {
				os.writeC(30);
				os.writeC(getItem().get_defense_earth());
			}
			*/
			//屬性強化捲軸
			// 武器屬性 
			if(itemType2 == 1){ 
			    if(getAttribute() == 1){ 
			        os.writeC(30); 
			        os.writeC(getAttributeLevel()); 
			    }else if(getAttribute() == 2){ 
			        os.writeC(27); 
			        os.writeC(getAttributeLevel()); 
			    }else if(getAttribute() == 4){ 
			        os.writeC(28); 
			        os.writeC(getAttributeLevel()); 
			    }else if(getAttribute() == 8){ 
			        os.writeC(29); 
			        os.writeC(getAttributeLevel()); 
			    } 
			} 
			//~屬性強化捲軸
			//飾品強化卷軸
			if (getItem().get_addhp() != 0 || getaddHp() != 0) {
				os.writeC(14);
				os.writeH(getItem().get_addhp() + getaddHp());
			}
			if (getItem().get_addmp() != 0 || getaddMp() != 0) {
				os.writeC(32);
				os.writeC(getItem().get_addmp() + getaddMp());
			}
			//飾品強化卷軸
			//飾品強化卷軸
			if (getItem().get_addsp() != 0 || getaddSp() != 0) {
				os.writeC(17);
				os.writeC(getItem().get_addsp() + getaddSp());
			}
			//飾品強化卷軸
			//飾品強化卷軸
			if (getItem().get_defense_fire() != 0 || getFireMr() != 0) {
				os.writeC(27);
				os.writeC(getItem().get_defense_fire() + getFireMr());
			}
			if (getItem().get_defense_water() != 0 || getWaterMr() != 0) {
				os.writeC(28);
				os.writeC(getItem().get_defense_water() + getWaterMr());
			}
			if (getItem().get_defense_wind() != 0 || getWindMr() != 0) {
				os.writeC(29);
				os.writeC(getItem().get_defense_wind() + getWindMr());
			}
			if (getItem().get_defense_earth() != 0 || getEarthMr() != 0) {
				os.writeC(30);
				os.writeC(getItem().get_defense_earth() + getEarthMr());
			}
			//飾品強化卷軸
			// 凍結耐性
			if (getItem().get_regist_freeze() != 0) {
				os.writeC(15);
				os.writeH(getItem().get_regist_freeze());
				os.writeC(33);
				os.writeC(1);
			}
			// 石化耐性
			if (getItem().get_regist_stone() != 0) {
				os.writeC(15);
				os.writeH(getItem().get_regist_stone());
				os.writeC(33);
				os.writeC(2);
			}
			// 睡眠耐性
			if (getItem().get_regist_sleep() != 0) {
				os.writeC(15);
				os.writeH(getItem().get_regist_sleep());
				os.writeC(33);
				os.writeC(3);
			}
			// 暗闇耐性
			if (getItem().get_regist_blind() != 0) {
				os.writeC(15);
				os.writeH(getItem().get_regist_blind());
				os.writeC(33);
				os.writeC(4);
			}
			// スタン耐性
			if (getItem().get_regist_stun() != 0) {
				os.writeC(15);
				os.writeH(getItem().get_regist_stun());
				os.writeC(33);
				os.writeC(5);
			}
			// ホールド耐性
			if (getItem().get_regist_sustain() != 0) {
				os.writeC(15);
				os.writeH(getItem().get_regist_sustain());
				os.writeC(33);
				os.writeC(6);
			}
			// 幸運
// if (getItem.getLuck() != 0) {
// os.writeC(20);
// os.writeC(val);
// }
			// 種類
// if (getItem.getDesc() != 0) {
// os.writeC(25);
// os.writeH(val); // desc.tbl ID
// }
			// レベル
// if (getItem.getLevel() != 0) {
// os.writeC(26);
// os.writeH(val);
// }
		}
		return os.getBytes();
	}

class EnchantTimer extends TimerTask {

	public EnchantTimer() {
	}

	@Override
	public void run() {
		try {
			int type = getItem().getType();
			int type2 = getItem().getType2();
			int itemId = getItem().getItemId();
			if (_pc != null && _pc.getInventory().checkItem(itemId)) {
				if (type == 2 && type2 == 2 && isEquipped()) {
					_pc.addAc(3);
					_pc.sendPackets(new S_OwnCharStatus(_pc));
				}
			}
			setAcByMagic(0);
			setDmgByMagic(0);
			setHolyDmgByMagic(0);
			setHitByMagic(0);
			_pc.sendPackets(new S_ServerMessage(308, getLogName()));
			_isRunning = false;
			_timer = null;
		} catch (Exception e) {
		}
	}
}

	private int _acByMagic = 0;

	public int getAcByMagic() {
		return _acByMagic;
	}

	public void setAcByMagic(int i) {
		_acByMagic = i;
	}

	private int _dmgByMagic = 0;

	public int getDmgByMagic() {
		return _dmgByMagic;
	}

	public void setDmgByMagic(int i) {
		_dmgByMagic = i;
	}

	private int _holyDmgByMagic = 0;

	public int getHolyDmgByMagic() {
		return _holyDmgByMagic;
	}

	public void setHolyDmgByMagic(int i) {
		_holyDmgByMagic = i;
	}

	private int _hitByMagic = 0;

	public int getHitByMagic() {
		return _hitByMagic;
	}

	public void setHitByMagic(int i) {
		_hitByMagic = i;
	}

	public void setSkillArmorEnchant(L1PcInstance pc, int skillId, int skillTime) {
		int type = getItem().getType();
		int type2 = getItem().getType2();
		if (_isRunning) {
			_timer.cancel();
			int itemId = getItem().getItemId();
			if (pc != null && pc.getInventory().checkItem(itemId)) {
				if (type == 2 && type2 == 2 && isEquipped()) {
					pc.addAc(3);
					pc.sendPackets(new S_OwnCharStatus(pc));
				}
			}
			setAcByMagic(0);
			_isRunning = false;
			_timer = null;
		}

		if (type == 2 && type2 == 2 && isEquipped()) {
			pc.addAc(-3);
			pc.sendPackets(new S_OwnCharStatus(pc));
		}
		setAcByMagic(3);
		_pc = pc;
		_timer = new EnchantTimer();
		(new Timer()).schedule(_timer, skillTime);
		_isRunning = true;
	}

	public void setSkillWeaponEnchant(L1PcInstance pc, int skillId,
			int skillTime) {
		if (getItem().getType2() != 1) {
			return;
		}
		if (_isRunning) {
			_timer.cancel();
			setDmgByMagic(0);
			setHolyDmgByMagic(0);
			setHitByMagic(0);
			_isRunning = false;
			_timer = null;
		}

		switch(skillId) {
			case L1SkillId.HOLY_WEAPON:
				setHolyDmgByMagic(1);
				setHitByMagic(1);
				break;

			case L1SkillId.ENCHANT_WEAPON:
				setDmgByMagic(2);
				break;

			case L1SkillId.BLESS_WEAPON:
				setDmgByMagic(2);
				setHitByMagic(2);
				break;

			case L1SkillId.SHADOW_FANG:
				setDmgByMagic(5);
				break;

			default:
				break;
		}

		_pc = pc;
		_timer = new EnchantTimer();
		(new Timer()).schedule(_timer, skillTime);
		_isRunning = true;
	}

	private int _itemOwnerId = 0;

	public int getItemOwnerId() {
	return _itemOwnerId;
	}

	public void setItemOwnerId(int i) {
		_itemOwnerId = i;
	}

	public void startItemOwnerTimer(L1PcInstance pc) {
		setItemOwnerId(pc.getId());
		L1ItemOwnerTimer timer = new L1ItemOwnerTimer(this, 10000);
		timer.begin();
	}

	private L1EquipmentTimer _equipmentTimer;

	public void startEquipmentTimer(L1PcInstance pc) {
		if (getRemainingTime() > 0) {
			_equipmentTimer = new L1EquipmentTimer(pc, this);
			Timer timer = new Timer(true);
			timer.scheduleAtFixedRate(_equipmentTimer, 1000, 1000);
		}
	}

	public void stopEquipmentTimer(L1PcInstance pc) {
		if (getRemainingTime() > 0) {
			_equipmentTimer.cancel();
			_equipmentTimer = null;
		}
	}

	private boolean _isNowLighting = false;

	public boolean isNowLighting() {
	return _isNowLighting;
	}

	public void setNowLighting(boolean flag) {
		_isNowLighting = flag;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -