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

📄 c_fishclick.java

📁 网络游戏天堂1的java源代码。。。。。
💻 JAVA
字号:
/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 *
 * http://www.gnu.org/copyleft/gpl.html
 * 
 * # FishingThread.java - Team Void Factory
 * 
 */

package l1j.server.server.clientpackets;

import java.util.logging.Logger;
import java.util.Random;

import l1j.server.server.ClientThread;
import l1j.server.server.FishingTimeController;
import l1j.server.server.datatables.ItemTable;
import l1j.server.server.model.Instance.L1ItemInstance;
import l1j.server.server.model.Instance.L1PcInstance;
import l1j.server.server.model.L1World;
import l1j.server.server.serverpackets.S_CharVisualUpdate;
import l1j.server.server.serverpackets.S_ServerMessage;

// Referenced classes of package l1j.server.server.clientpackets:
// ClientBasePacket

public class C_FishClick extends ClientBasePacket {

	private static final String C_FISHCLICK = "[C] C_FishClick";
	private static l1j.eric.EricLogger _log =  l1j.eric.EricLogger.getLogger2(C_FishClick.class.getName());
	private static Random _random = new Random();

	public C_FishClick(byte abyte0[], ClientThread clientthread) throws Exception {
		super(abyte0);
		L1PcInstance pc = clientthread.getActiveChar();
		long currentTime = System.currentTimeMillis();
		long time = pc.getFishingTime();

		if (currentTime < (time + 500) && currentTime > (time - 500)
				&& pc.isFishingReady()) {
			finishFishing(pc);

			int chance = _random.nextInt(200) + 1;
			if (chance >= 0 && chance < 50) {
				successFishing(pc, 41298);
			} else if (chance >= 50 && chance < 65) {
				successFishing(pc, 41300);
			} else if (chance >= 65 && chance < 80) {
				successFishing(pc, 41299);
			} else if (chance >= 80 && chance < 90) {
				successFishing(pc, 41296);
			} else if (chance >= 90 && chance < 100) {
				successFishing(pc, 41297);
			} else if (chance >= 100 && chance < 105) {
				successFishing(pc, 41301);
			} else if (chance >= 105 && chance < 110) {
				successFishing(pc, 41302);
			} else if (chance >= 110 && chance < 115) {
				successFishing(pc, 41303);
			} else if (chance >= 115 && chance < 120) {
				successFishing(pc, 41304);
			} else if (chance >= 120 && chance < 123) {
				successFishing(pc, 41306);
			} else if (chance >= 123 && chance < 126) {
				successFishing(pc, 41307);
			} else if (chance >= 126 && chance < 129) {
				successFishing(pc, 41305);
			} else if (chance >= 129 && chance < 134) {
				successFishing(pc, 21051);
			} else if (chance >= 134 && chance < 139) {
				successFishing(pc, 21052);
			} else if (chance >= 139 && chance < 144) {
				successFishing(pc, 21053);
			} else if (chance >= 144 && chance < 159) {
				successFishing(pc, 21054);
			} else if (chance >= 159 && chance < 164) {
				successFishing(pc, 21055);
			} else if (chance >= 164 && chance < 169) {
				successFishing(pc, 21056);
			} else if (chance >= 170 && chance < 171) {
				successFishing(pc, 41252);
			} else {
				pc.sendPackets(new S_ServerMessage(1136, "")); // 釣りに失敗しました。
			}
		} else {
			finishFishing(pc);
			pc.sendPackets(new S_ServerMessage(1136, "")); // 釣りに失敗しました。
		}
	}

	private void finishFishing(L1PcInstance pc) {
		pc.setFishingTime(0);
		pc.setFishingReady(false);
		pc.setFishing(false);
		pc.sendPackets(new S_CharVisualUpdate(pc));
		pc.broadcastPacket(new S_CharVisualUpdate(pc));
		FishingTimeController.getInstance().removeMember(pc);
	}

	private void successFishing(L1PcInstance pc, int itemId) {
		String message = null;

		switch (itemId) {
		case 41296: // フナ
			message = "$5249";
			break;

		case 41297: // コイ
			message = "$5250";
			break;

		case 41298: // ヤング フィッシュ
			message = "$5256";
			break;

		case 41299: // スウィフト フィッシュ
			message = "$5257";
			break;

		case 41300: // ストロング フィッシュ
			message = "$5258";
			break;

		case 41301: // シャイニング レッド フィッシュ
			message = "$5259";
			break;

		case 41302: // シャイニング グリーン フィッシュ
			message = "$5260";
			break;

		case 41303: // シャイニング ブルー フィッシュ
			message = "$5261";
			break;

		case 41304: // シャイニング ホワイト フィッシュ
			message = "$5262";
			break;

		case 41305: // 壊れたイアリング
			message = "$5264";
			break;

		case 41306: // 壊れたリング
			message = "$5263";
			break;

		case 41307: // 壊れたネックレス
			message = "$5265";
			break;

		case 21051: // 濡れたヘルム
			message = "$5269";
			break;

		case 21052: // 濡れたマント
			message = "$5270";
			break;

		case 21053: // 濡れたアーマー
			message = "$5271";
			break;

		case 21054: // 濡れたグローブ
			message = "$5272";
			break;

		case 21055: // 濡れたブーツ
			message = "$5273";
			break;

		case 21056: // 濡れたシールド
			message = "$5274";
			break;

		case 41252: // レア タートル
			message = "$5248";
			break;

		default:
			break;
		}

		L1ItemInstance item = ItemTable.getInstance().createItem(itemId);
		if (item != null) {
			item.startItemOwnerTimer(pc);

			int dropX = 0;
			int dropY = 0;
			int x = pc.getX();
			int y = pc.getY();
			switch (pc.getHeading()) {
			case 1:
				dropX = x--;
				dropY = y++;
				break;
			case 2:
				dropX = x--;
				break;
			case 3:
				dropX = x--;
				dropY = y--;
				break;
			case 4:
				dropY = y--;
				break;
			case 5:
				dropX = x++;
				dropY = y--;
				break;
			case 6:
				dropX = x++;
				break;
			case 7:
				dropX = x++;
				dropY = y++;
				break;
			case 0:
				dropY = y++;
				break;
			default:
				break;
			}

			L1World.getInstance().getInventory(dropX, dropY,
					pc.getMapId()).storeItem(item);
			// 釣りに成功して%0%oを釣りました。
			pc.sendPackets(new S_ServerMessage(1185, message));
		}
	}

	@Override
	public String getType() {
		return C_FISHCLICK;
	}
}

⌨️ 快捷键说明

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