假釣魚真抽獎...
改的非常濫...請不要嫌棄
我先講原理
假設有一個釣竿(道具)
又有一個魚餌(裝備)
釣竿要使用先檢查有沒有魚餌(裝備)
如果有才能釣魚
然後還要再加入判斷
釣魚的所在地點...釣魚場的魚池附近!
至於釣上來什麼呢...請各為GM自己新增,想要讓玩家自己得到什麼吧!
以下開始程式碼
首先先找
ItemTable.java
然後再找
_armorTypes.put("ring2", new Integer(11));
複製代碼
接著新增
//add偽.釣魚
_armorTypes.put("6", new Integer(18));//魚餌
//add結束
複製代碼
以後魚餌在裝備欄TYPE的地方請設6
這樣玩家才能裝備魚餌上去
接著到C_RequestItemUSe.java ( C_ItemUSe )
我是在無限箭桶(itemId == 40330)的結束後面新增
//add假釣竿
if (itemId == 600004) {
int x = pc.getX();
int y = pc.getY();
int map = pc.getMapId();
if (x == 32807 && y == 32799 && map == 5124 || x == 32807 && y == 32798 && map == 5124 || x == 32807 && y == 32797 && map == 5124 || x == 32807 && y == 32796 && map == 5124 || x == 32807 && y == 32793 && map == 5124 || x == 32801 && y == 32812 && map == 5124 || x == 32790 && y == 32800 && map == 5124 || x == 32793 && y == 32793 && map == 5124 || x == 32807 && y == 32795 && map == 5124 || x == 32807 && y == 32794 && map == 5124 || x == 32807 && y == 32792 && map == 5124 || x == 32800 && y == 32812 && map == 5124
|| x == 32790 && y == 32800 && map == 5124 || x == 32790 && y == 32799 && map == 5124 || x == 32790 && y == 32798 && map == 5124 || x == 32790 && y == 32797 && map == 5124 || x == 32790 && y == 32796 && map == 5124 || x == 32799 && y == 32812 && map == 5124
|| x == 32790 && y == 32795 && map == 5124 || x == 32792 && y == 32793 && map == 5124 || x == 32804 && y == 32812 && map == 5124 || x == 32803 && y == 32812 && map == 5124 || x == 32802 && y == 32812 && map == 5124 || x == 32798 && y == 32812 && map == 5124
|| x == 32794 && y == 32792 && map == 5124 || x == 32795 && y == 32792 && map == 5124 || x == 32795 && y == 32791 && map == 5124 || x == 32797 && y == 32812 && map == 5124
|| x == 32797 && y == 32788 && map == 5124 || x == 32798 && y == 32788 && map == 5124) {
if (pc.getInventory().checkEquipped(600005)) {
L1ItemInstance consume_item = pc.getInventory().findItemId(600005);
int l1 = 0;
int l2 = 1;
Random random = new Random();
int k4 = random.nextInt(100);
int k3 = random.nextInt(100);
if (k4 < 50) {
try {
Thread.sleep(2000);
}
catch (Exception exception) {
}
pc.sendPackets(new S_SystemMessage("上鉤了!"));
if (k3 <= 79) { //
l1 = 40744;
l2 = 4000;
}
if (k3 >= 80 && k3 <= 89) { // 矢
l1 = 40746;
l2 = 2000;
}
if (k3 >= 90 && k3 <= 94) { //
l1 = 40747;
l2 = 500;
}
if (k3 >= 95 && k3 <= 99) { //
l1 = 40748;
l2 = 300;
}
if (!CreateNewItem(pc, l1, l2)) {
// 失敗場互效果入
isDelayEffect = false;
}
pc.getInventory().removeItem(consume_item, 100);
}
else {
try {
Thread.sleep(2000);
}
catch (Exception exception) {
}
pc.sendPackets(new S_SystemMessage("可惜沒有掉到!"));
pc.getInventory().removeItem(consume_item, 100);
}
} else
pc.sendPackets(new S_SystemMessage("沒有裝備釣餌"));
} else
pc.sendPackets(new S_SystemMessage("不在魚池旁邊"));
} else
//add結束
複製代碼說明
k4<50就是多少機率會掉到東西
l1就是你想要讓玩家釣上些什麼
l2就是你想要讓玩家釣上幾個
Thread.sleep(2000);2000就是讓玩家停頓2秒鐘
以上是用非常濫的寫法做出來的釣魚系統...
喜歡的先湊互著用吧
再來我當然不能放我對我自己惡搞嚕!
但是我只有說方式...
那就是如果再配互上
yamca2701大大的時間程式
你們可以做出來一個釣魚大賽!
就是再某個時間內掉上來的東西更好!
以下是大概方式,因為我懶的再多寫了ˇˇ...if (itemId == 600004) {
int x = pc.getX();
int y = pc.getY();
int map = pc.getMapId();
if (x == 32807 && y == 32799 && map == 5124 || x == 32807 && y == 32798 && map == 5124 || x == 32807 && y == 32797 && map == 5124 || x == 32807 && y == 32796 && map == 5124 || x == 32807 && y == 32793 && map == 5124 || x == 32801 && y == 32812 && map == 5124
|| x == 32790 && y == 32800 && map == 5124 || x == 32793 && y == 32793 && map == 5124 || x == 32807 && y == 32795 && map == 5124 || x == 32807 && y == 32794 && map == 5124 || x == 32807 && y == 32792 && map == 5124 || x == 32800 && y == 32812 && map == 5124
|| x == 32790 && y == 32800 && map == 5124 || x == 32790 && y == 32799 && map == 5124 || x == 32790 && y == 32798 && map == 5124 || x == 32790 && y == 32797 && map == 5124 || x == 32790 && y == 32796 && map == 5124 || x == 32799 && y == 32812 && map == 5124
|| x == 32790 && y == 32795 && map == 5124 || x == 32792 && y == 32793 && map == 5124 || x == 32804 && y == 32812 && map == 5124 || x == 32803 && y == 32812 && map == 5124 || x == 32802 && y == 32812 && map == 5124 || x == 32798 && y == 32812 && map == 5124
|| x == 32794 && y == 32792 && map == 5124 || x == 32795 && y == 32792 && map == 5124 || x == 32795 && y == 32791 && map == 5124 || x == 32797 && y == 32812 && map == 5124
|| x == 32797 && y == 32788 && map == 5124 || x == 32798 && y == 32788 && map == 5124) {
複製代碼在這堆地圖位子的判斷後面新增
if(釣魚大賽的時間)下面都一樣
然後再
} else
pc.sendPackets(new S_SystemMessage("不在魚池旁邊"));
複製代碼的上面在新增
else
再把地圖判斷以下的東西全部都複製一遍!
直到上面那個CODE之前的
然後兩個物品...
第一種設定更好的東西
第二種設定普通時間的東西
以上...有幾個缺點
第一我沒有釣魚的動作...(我做不出來阿... )
第二程式寫法很不漂亮...
第三地圖判斷寫了一大堆,因為我使用>=&&<=的時候,也不知道為什麼,都會判斷失敗...
所以只好土法煉鋼一個一個慢慢寫了...