顯示具有 延伸 標籤的文章。 顯示所有文章
顯示具有 延伸 標籤的文章。 顯示所有文章

2014年7月18日 星期五

【Java教學】城堡專屬對話

L1MerchantInstance

可能須搭配 L1CastleLocation

舉例:

//歐比 奇岩城 內侍從長
} else if (npcid == 70623) { 
boolean hascastle = checkHasCastle(player,
L1CastleLocation.GIRAN_CASTLE_ID); //設定城堡專屬   奇岩城
if (hascastle) { // 擁有城堡的成員
if (checkClanLeader(player)) { // 血盟主
htmlid = "orville1";       //城主,請您下達命令?(這是給血盟盟主看的)
} else {
htmlid = "orville6";       //殿下您好。  (這是給血盟成員看的)
htmldata = new String[] { player.getName() };
}
} else { //非血盟成員時顯示對話
htmlid = "orville7";//你以為這是哪裡,竟敢偷偷潛入這裡!(這是給非血盟成員看的)
}

2014年6月12日 星期四

【Java教學】增加治癒結界寫法

增加治癒結界寫法

首先開啟

 Gameserver

找不到 你可以按  


<SPAN
style="BACKGROUND-COLOR: #ffcc66">ctrl+f 收尋功能
<SPAN
style="BACKGROUND-COLOR: #ffcc66">


打開來了之後  //  那檔案不大 可以直接往下拉!!


你會看到


(new
l1j.william.CureArea(32629,32772,32607,32794,4,3,3,10,0,2231)).start(); 
              (new
l1j.william.CureArea(32610,32776,32625,32792,4,3,3,10,0,2231)).start();

                (new
l1j.william.CureArea(32747,32787,32711,32828,52,6,6,10,0,2231)).start();

                (new
l1j.william.CureArea(32711,32787,32748,32828,52,6,6,10,0,2231)).start();

                (new
l1j.william.CureArea(32779,32825,32753,32851,5115,10,10,10,0,2231)).start();

                (new
l1j.william.CureArea(32753,32825,32779,32851,5115,10,10,10,0,2231)).start();

                (new
l1j.william.CureArea(32782,32759,32754,32787,5001,10,10,10,0,2231)).start();

                (new
l1j.william.CureArea(32754,32759,32782,32787,5001,10,10,10,0,2231)).start();

                (new
l1j.william.CureArea(33404,32650,33392,32657,4,6,6,10,0,2231)).start();

                (new
l1j.william.CureArea(33392,32650,33404,32656,4,6,6,10,0,2231)).start();

                (new
l1j.william.CureArea(33384,32692,33372,32699,4,6,6,10,0,2231)).start();

                (new
l1j.william.CureArea(33372,32692,33384,32698,4,6,6,10,0,2231)).start();

                (new
l1j.william.CureArea(33486,32788,33479,32791,4,6,6,10,0,2231)).start();

                (new
l1j.william.CureArea(33479,32788,33486,32791,4,6,6,10,0,2231)).start();

                (new
l1j.william.CureArea(32785,32829,32746,32848,5100,10,10,10,0,2231)).start();

                (new
l1j.william.CureArea(32746,32829,32785,32847,5100,10,10,10,0,2231)).start();

                (new
l1j.william.CureArea(33610,33213,33602,33218,4,6,6,10,0,2231)).start();

                (new
l1j.william.CureArea(33602,33213,33610,33217,4,6,6,10,0,2231)).start();

           
    (new
l1j.william.CureArea(32715,32880,32684,32911,98,10,10,10,0,2231)).start();

                (new
l1j.william.CureArea(32684,32879,32716,32911,98,10,10,10,0,2231)).start();



這些東西  這些就是  治癒結界的位置

我先取一段下來 說明一下  !!
  ( 取後面紅色部分的 )

(new
l1j.william.CureArea(132715,32880,<SPAN
style="COLOR: #ff0000">232684,32911,98,10,10,10,0,2231)).start();

             
(new
l1j.william.CureArea(332684,32879,<SPAN
style="COLOR: #ff0000">432716,32911,98,10,10,10,0,2231)).start();



<SPAN
style="COLOR: #ff0000">在這段中,其實這是4個點  的位置  (1個範圍)

<SPAN
style="COLOR: #ff0000">

要如何取這範圍呢?
  教學如下!!


<SPAN
style="COLOR: #ff0000">             1 = 32715,32880

       
  3 = <SPAN
style="COLOR: #ff00cc">32684,32879       
                   
          4 = <SPAN
style="COLOR: #66cc00">32716,32911

<SPAN
style="COLOR: #ff0000">             
                   
  2 =32684,32879
<SPAN
style="COLOR: #00ffff">
對照 號碼
//  座標的順序可別打錯        簡單來說 範圍的設定 =   <SPAN
style="COLOR: #ff0000">+
<SPAN
style="COLOR: #00ffff">
<SPAN
style="COLOR: #00ffff">


接著  座標後面那是什麼意思呢 ??

第1個

  98= 地圖編號

第2 3 個 

10,10 =  hp/mp的回覆量

第4個

10  =  10秒回1次

第5個      

0  = 回覆無線次

如果你設  1  代表 隻回1次 就不回了  此部分 大部分都設0的 = ="

最後1個  2231的部分  ))  =  技能的 治癒結界  !!


另外 
要學寫  治癒結界這部分 !!

一定要會


java轉 class      //

2014年6月11日 星期三

【Java教學】轉生次數增加血魔設定

Config.java裡面找到

public static int ILLUSIONIST_MAX_MP;

在底下加入

public static boolean METEMPSYCHOSIS_SWITCH;//轉生增加血量開關

public static short METEMPSYCHOSIS_1_ADD_HP;//1轉生增加血量

public static short METEMPSYCHOSIS_1_ADD_MP;//1轉生增加魔力

public static short METEMPSYCHOSIS_2_ADD_HP;//2轉生增加血量

public static short METEMPSYCHOSIS_2_ADD_MP;//2轉生增加魔力

public static short METEMPSYCHOSIS_3_ADD_HP;//3轉生增加血量

public static short METEMPSYCHOSIS_3_ADD_MP;//3轉生增加魔力

public static short METEMPSYCHOSIS_4_ADD_HP;//4轉生增加血量

public static short METEMPSYCHOSIS_4_ADD_MP;//4轉生增加魔力

public static short METEMPSYCHOSIS_5_ADD_HP;//5轉生增加血量

public static short METEMPSYCHOSIS_5_ADD_MP;//5轉生增加魔力

public static short METEMPSYCHOSIS_6_ADD_HP;//6轉生增加血量

public static short METEMPSYCHOSIS_6_ADD_MP;//6轉生增加魔力

public static short METEMPSYCHOSIS_7_ADD_HP;//7轉生增加血量

public static short METEMPSYCHOSIS_7_ADD_MP;//7轉生增加魔力

public static short METEMPSYCHOSIS_8_ADD_HP;//8轉生增加血量

public static short METEMPSYCHOSIS_8_ADD_MP;//8轉生增加魔力

public static short METEMPSYCHOSIS_9_ADD_HP;//9轉生增加血量

public static short METEMPSYCHOSIS_9_ADD_MP;//9轉生增加魔力

public static short METEMPSYCHOSIS_10_ADD_HP;//10轉生增加血量

public static short METEMPSYCHOSIS_10_ADD_MP;//10轉生增加魔力

找到

   ILLUSIONIST_MAX_MP = Integer.parseInt(charSettings.getProperty(
     "IllusionistMaxMP", "1100"));

在底下加入

   //轉生次數增加血魔開關
   METEMPSYCHOSIS_SWITCH = Boolean.parseBoolean(charSettings.getProperty(
     "METEMPSYCHOSIS_SWITCH", "false"));
   //轉生次數增加血魔
   METEMPSYCHOSIS_1_ADD_HP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_1_ADD_HP", "500"));
   METEMPSYCHOSIS_1_ADD_MP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_1_ADD_MP", "500"));
   METEMPSYCHOSIS_2_ADD_HP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_2_ADD_HP", "500"));
   METEMPSYCHOSIS_2_ADD_MP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_2_ADD_MP", "500"));
   METEMPSYCHOSIS_3_ADD_HP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_3_ADD_HP", "500"));
   METEMPSYCHOSIS_3_ADD_MP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_3_ADD_MP", "500"));
   METEMPSYCHOSIS_4_ADD_HP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_4_ADD_HP", "500"));
   METEMPSYCHOSIS_4_ADD_MP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_4_ADD_MP", "500"));
   METEMPSYCHOSIS_5_ADD_HP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_5_ADD_HP", "500"));
   METEMPSYCHOSIS_5_ADD_MP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_5_ADD_MP", "500"));
   METEMPSYCHOSIS_6_ADD_HP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_6_ADD_HP", "500"));
   METEMPSYCHOSIS_6_ADD_MP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_6_ADD_MP", "500"));
   METEMPSYCHOSIS_7_ADD_HP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_7_ADD_HP", "500"));
   METEMPSYCHOSIS_7_ADD_MP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_7_ADD_MP", "500"));
   METEMPSYCHOSIS_8_ADD_HP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_8_ADD_HP", "500"));
   METEMPSYCHOSIS_8_ADD_MP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_8_ADD_MP", "500"));
   METEMPSYCHOSIS_9_ADD_HP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_9_ADD_HP", "500"));
   METEMPSYCHOSIS_9_ADD_MP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_9_ADD_MP", "500"));
   METEMPSYCHOSIS_10_ADD_HP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_10_ADD_HP", "500"));
   METEMPSYCHOSIS_10_ADD_MP =Short.parseShort(charSettings.getProperty(
     "METEMPSYCHOSIS_10_ADD_MP", "500"));
   //轉生次數增加血魔


找到

  } else if (pName.equalsIgnoreCase("IllusionistMaxMP")) {
   ILLUSIONIST_MAX_MP = Integer.parseInt(pValue);


在底下加入

  //轉生次數增加血魔開關
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_SWITCH")) {
   METEMPSYCHOSIS_SWITCH = Boolean.valueOf(pValue);
  //轉生次數增加血魔
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_1_ADD_HP")) {
   METEMPSYCHOSIS_1_ADD_HP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_1_ADD_MP")) {
   METEMPSYCHOSIS_1_ADD_MP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_2_ADD_HP")) {
   METEMPSYCHOSIS_2_ADD_HP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_2_ADD_MP")) {
   METEMPSYCHOSIS_2_ADD_MP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_3_ADD_HP")) {
   METEMPSYCHOSIS_3_ADD_HP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_3_ADD_MP")) {
   METEMPSYCHOSIS_3_ADD_MP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_4_ADD_HP")) {
   METEMPSYCHOSIS_4_ADD_HP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_4_ADD_MP")) {
   METEMPSYCHOSIS_4_ADD_MP = Short.parseShort(pValue); 
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_5_ADD_HP")) {
   METEMPSYCHOSIS_5_ADD_HP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_5_ADD_MP")) {
   METEMPSYCHOSIS_5_ADD_MP = Short.parseShort(pValue); 
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_6_ADD_HP")) {
   METEMPSYCHOSIS_6_ADD_HP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_6_ADD_MP")) {
   METEMPSYCHOSIS_6_ADD_MP = Short.parseShort(pValue); 
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_7_ADD_HP")) {
   METEMPSYCHOSIS_7_ADD_HP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_7_ADD_MP")) {
   METEMPSYCHOSIS_7_ADD_MP = Short.parseShort(pValue); 
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_8_ADD_HP")) {
   METEMPSYCHOSIS_8_ADD_HP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_8_ADD_MP")) {
   METEMPSYCHOSIS_8_ADD_MP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_9_ADD_HP")) {
   METEMPSYCHOSIS_9_ADD_HP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_9_ADD_MP")) {
   METEMPSYCHOSIS_9_ADD_MP = Short.parseShort(pValue); 
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_10_ADD_HP")) {
   METEMPSYCHOSIS_10_ADD_HP = Short.parseShort(pValue);
  } else if (pName.equalsIgnoreCase("METEMPSYCHOSIS_10_ADD_MP")) {
   METEMPSYCHOSIS_10_ADD_MP = Short.parseShort(pValue); 
   //轉生次數增加血魔


C_ItemUSE.java 裡面找到

      pc.getInventory().removeItem(l1iteminstance, 1);
      pc.set_metempsychosis(pc.get_metempsychosis() + 1);//TODO 轉生次數+1


在底下加入

      if(Config.METEMPSYCHOSIS_SWITCH){
       switch (pc.get_metempsychosis()) {
       case 1:
        pc.addBaseMaxHp(Config.METEMPSYCHOSIS_1_ADD_HP);
        pc.addBaseMaxMp(Config.METEMPSYCHOSIS_1_ADD_MP);
        break;
       case 2:
        pc.addBaseMaxHp(Config.METEMPSYCHOSIS_2_ADD_HP);
        pc.addBaseMaxMp(Config.METEMPSYCHOSIS_2_ADD_MP);
        break;
       case 3:
        pc.addBaseMaxHp(Config.METEMPSYCHOSIS_3_ADD_HP);
        pc.addBaseMaxMp(Config.METEMPSYCHOSIS_3_ADD_MP);
        break;
       case 4:
        pc.addBaseMaxHp(Config.METEMPSYCHOSIS_4_ADD_HP);
        pc.addBaseMaxMp(Config.METEMPSYCHOSIS_4_ADD_MP);
        break;
       case 5:
        pc.addBaseMaxHp(Config.METEMPSYCHOSIS_5_ADD_HP);
        pc.addBaseMaxMp(Config.METEMPSYCHOSIS_5_ADD_MP);
        break;
       case 6:
        pc.addBaseMaxHp(Config.METEMPSYCHOSIS_6_ADD_HP);
        pc.addBaseMaxMp(Config.METEMPSYCHOSIS_6_ADD_MP);
        break;
       case 7:
        pc.addBaseMaxHp(Config.METEMPSYCHOSIS_7_ADD_HP);
        pc.addBaseMaxMp(Config.METEMPSYCHOSIS_7_ADD_MP);
        break;
       case 8:
        pc.addBaseMaxHp(Config.METEMPSYCHOSIS_8_ADD_HP);
        pc.addBaseMaxMp(Config.METEMPSYCHOSIS_8_ADD_MP);
        break;
       case 9:
        pc.addBaseMaxHp(Config.METEMPSYCHOSIS_9_ADD_HP);
        pc.addBaseMaxMp(Config.METEMPSYCHOSIS_9_ADD_MP);
        break;
       case 10:
        pc.addBaseMaxHp(Config.METEMPSYCHOSIS_10_ADD_HP);
        pc.addBaseMaxMp(Config.METEMPSYCHOSIS_10_ADD_MP);
        break;
       }
      }


找到

      BroadCastToAll("[url=file://\\fV]\\fV[/url]" + "恭喜玩家【" + pc.getName()+ "】被打入輪迴獲得新生!");
      pc.save(); // DBにキャラクター情報を書き迂む


在底下加入

      pc.sendPackets(new S_OwnCharStatus(pc)); 

java部份大功告成

接著在config裡面的charsettings.properties

找個位置加入

轉生次數增加的血魔設定,必需轉生完整保留血魔設定
METEMPSYCHOSIS_SWITCH = True
METEMPSYCHOSIS_1_ADD_HP = 500
METEMPSYCHOSIS_1_ADD_MP = 500
METEMPSYCHOSIS_2_ADD_HP = 700
METEMPSYCHOSIS_2_ADD_MP = 700
METEMPSYCHOSIS_3_ADD_HP = 900
METEMPSYCHOSIS_3_ADD_MP = 900
METEMPSYCHOSIS_4_ADD_HP = 1000
METEMPSYCHOSIS_4_ADD_MP = 1000
METEMPSYCHOSIS_5_ADD_HP = 1100
METEMPSYCHOSIS_5_ADD_MP = 1100
METEMPSYCHOSIS_6_ADD_HP = 1200
METEMPSYCHOSIS_6_ADD_MP = 1200
METEMPSYCHOSIS_7_ADD_HP = 1300
METEMPSYCHOSIS_7_ADD_MP = 1300
METEMPSYCHOSIS_8_ADD_HP = 1400
METEMPSYCHOSIS_8_ADD_MP = 1400
METEMPSYCHOSIS_9_ADD_HP = 1500
METEMPSYCHOSIS_9_ADD_MP = 1500
METEMPSYCHOSIS_10_ADD_HP = 1600
METEMPSYCHOSIS_10_ADD_mP = 1600


原文:浪漫物語網路社區               作者:jason017050   










2014年6月6日 星期五

【Java教學】新增組隊等級限制

新增組隊等級限制


修改

C_CreateParty.java 

加入 


// 限制玩家組隊等級 
import l1j.server.Config; 
// 限制玩家組隊等級 end 


搜尋 

L1PcInstance targetPc = (L1PcInstance) temp; 


下面加入 

// 限制玩家組隊等級 
// 低組低 
            if (pc.getLevel() <= Config.Party_Lv && targetPc.getLevel() <= Config.Party_Lv) { 
              pc.sendPackets(new S_ServerMessage(166, "等級尚未達到 " + (Config.Party_Lv + 1) + " 級,所以無法組隊")); 
              targetPc.sendPackets(new S_ServerMessage(166, "等級尚未達到 " + (Config.Party_Lv + 1) + " 級,所以無法組隊")); 
            } 
// 低組高 
            if (pc.getLevel() <= Config.Party_Lv && targetPc.getLevel() > Config.Party_Lv) {  
              pc.sendPackets(new S_ServerMessage(166, "等級尚未達到 " + (Config.Party_Lv + 1) + " 級,所以無法組隊")); 
              targetPc.sendPackets(new S_ServerMessage(166, "對方等級尚未達到 " + (Config.Party_Lv + 1) + " 級,所以無法組隊")); 
            } 
// 高組低 
            if (pc.getLevel() > Config.Party_Lv && targetPc.getLevel() <= Config.Party_Lv) { 
              pc.sendPackets(new S_ServerMessage(166, "對方等級尚未達到 " + (Config.Party_Lv + 1) + " 級,所以無法組隊")); 
              targetPc.sendPackets(new S_ServerMessage(166, "等級尚未達到 " + (Config.Party_Lv + 1) + " 級,所以無法組隊")); 
            } 
// 限制玩家組隊等級 end 


搜尋 

if (pc.isInParty()) { 


上面加入 

// 限制玩家組隊等級 
            if (pc.getLevel() > Config.Party_Lv && targetPc.getLevel() > Config.Party_Lv) { 
// 限制玩家組隊等級 end 


搜尋 

targetPc.sendPackets(new S_Message_YN(953, pc.getName())); 


下面加入 

// 限制玩家組隊等級 
} 
// 限制玩家組隊等級 end 


修改

CalcExp.java 

搜尋 

                  if (party_level > 0) { 
                    dist = ((ptMembers[cnt].getLevel() * ptMembers[cnt] 
                          .getLevel()) / party_level); 
                  } 


把這段修改為 

// 限制玩家組隊等級 
                  if (party_level > Config.Party_Lv) { 
                    dist = ((ptMembers[cnt].getLevel() * ptMembers[cnt] 
                          .getLevel()) / party_level); 
                  } else { 
                    party_exp = 0;  
                  } 
// 限制玩家組隊等級 end 


修改

Config.java 

搜尋 

public static int DEFAULT_CHARACTER_SLOT; 


下面加入 

// 限制玩家組隊等級 
  public static int Party_Lv; 
// 限制玩家組隊等級 end 


搜尋 

        DEFAULT_CHARACTER_SLOT = Integer.parseInt(altSettings.getProperty( 
              "DefaultCharacterSlot", "6")); 


下面加入 

// 限制玩家組隊等級 
        Party_Lv = Integer.parseInt(altSettings.getProperty( 
              "PartyLv", "5")); 
// 限制玩家組隊等級 end 


搜尋 

      } else if (pName.equalsIgnoreCase("DefaultCharacterSlot")) { 
        DEFAULT_CHARACTER_SLOT = Integer.valueOf(pValue); 


下面加入 

// 限制玩家組隊等級 
      } else if (pName.equalsIgnoreCase("PartyLv")) { 
        Party_Lv = Integer.parseInt(pValue); 
// 限制玩家組隊等級 end 


修改

altsettings.properties 

最下面新增 

#------------------------------------------------------------- 
#玩家等級高於多少 才能組隊 等級低於設定值 就算組隊 獲得的經驗值為0 
#不限制玩家等級 則設定為 = 0 
PartyLv = 5 
#------------------------------------------------------------- 

2014年6月4日 星期三

【Java教學】假釣魚系統...

假釣魚真抽獎...


改的非常濫...請不要嫌棄
我先講原理
假設有一個釣竿(道具)
又有一個魚餌(裝備)
釣竿要使用先檢查有沒有魚餌(裝備)
如果有才能釣魚

然後還要再加入判斷
釣魚的所在地點...釣魚場的魚池附近!

至於釣上來什麼呢...請各為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結束


複製代碼說明

  1. k4<50就是多少機率會掉到東西
  2. l1就是你想要讓玩家釣上些什麼
  3. l2就是你想要讓玩家釣上幾個
  4. 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之前的

然後兩個物品...

第一種設定更好的東西
第二種設定普通時間的東西

以上...有幾個缺點

第一我沒有釣魚的動作...(我做不出來阿... )
第二程式寫法很不漂亮...
第三地圖判斷寫了一大堆,因為我使用>=&&<=的時候,也不知道為什麼,都會判斷失敗...
所以只好土法煉鋼一個一個慢慢寫了...