2013年5月15日 星期三

【Java教學】小遊戲~猜數字

在L1SkillTimer.java找個地方加入

//猜數字 by aloha777
        else if (skillId==7005)
        {
        L1PcInstance pc = (L1PcInstance)cha;
        if((cha instanceof L1PcInstance))
        {
        pc.sendPackets(new S_Paralysis(5, true)); 
        Random _random = new Random();
        int rndo = _random.nextInt(99) + 1; 
        pc.setGuessmath(rndo);
        pc.sendPackets(new S_SystemMessage("猜數字大小遊戲開始,請輸入1~99的數字...")); 
        pc.setSkillEffect(7006, 5 * 60000);//計時五分鐘
        }

        }
        if(skillId == 7006)
        {
        L1PcInstance pc = (L1PcInstance)cha;
        if(cha instanceof L1PcInstance)
        pc.sendPackets(new S_SystemMessage("時間到了...很遺憾,下次再接再勵吧!!")); 
        pc.sendPackets(new S_Paralysis(5, false));
        }
在L1PcInstance.java最底下加入

//猜數字 by aloha777
      private int _Guessmath;
      
      public int getGuessmath() {
      return _Guessmath;
      }
      
      public void setGuessmath(int i) {
      _Guessmath = i;
      } 

C_Chat.java 

先加入定義import l1j.server.server.serverpackets.S_Paralysis;

搜尋if (chatText.startsWith(".") && pc.isGm()) { //補上gm判斷
String cmd = chatText.substring(1);
GMCommands.getInstance().handleCommands(pc, cmd);
return;
}
下面加入

//猜數字 by aloha777
if(pc.hasSkillEffect(7006))
{

int guess = Integer.parseInt(chatText);

if (guess > pc.getGuessmath())
pc.sendPackets(new S_SystemMessage("數字比【"+ guess+ "】小。"));
else if (guess< pc.getGuessmath())
pc.sendPackets(new S_SystemMessage("數字比【"+ guess+ "】大。"));
else{
pc.sendPackets(new S_Paralysis(5, false));
pc.sendPackets(new S_SystemMessage("恭喜您猜中了"));
}
return;
}

C_NpcAction.java下找個地方加入

//猜數字by aloha777
       else if (((L1NpcInstance) obj).getNpcTemplate().get_npcId() == 800029) { //npcid請自行更改
       if (s.equalsIgnoreCase("guessmath")) {
       pc.setSkillEffect(7005, 1); 
       htmlid = "";

       } 
       }
資料庫新增npc800029

對話檔名guessmath

對話黨可以寫成這樣↓

<html> 
<body> 
<font fg=ffffaf><p align=left> <name>:</p></font> 
<br>

將所猜的數字輸入對話欄即可<br>
<br>
若所猜的數字比題目大<br>
<font fg=ffff00>會顯示數字比【Y】小</font>
<br>
反之,若所猜的數字比題目小<br>
<font fg=ffff00>會顯示數字比【Y】大</font>
<br>
<br> 
參加費用為 500,000 元。
<br>
<br>
<a action="guessmath">我要參加</a>
<br> 
</body> 
</html>

沒有留言:

張貼留言