2014年2月24日 星期一

雷達.活動卷.重生藥水.解卡點.衝武防廣播.變性.加倍藥水等

BOSS雷達搜尋
首先是打開C_ItemUSe.java
搜尋這段pc.getInventory().removeItem(l1iteminstance, 1);
下面加入這段
      } else if (itemId == 49314) {  //道具編號自行修改
                  boolean hasboss = false; //雷達
                  String bossname = "";
                  int bossX = 0;
                  int bossY = 0;
                  for (L1Object object : L1World.getInstance().getObject()) {
                  if (object instanceof L1MonsterInstance) {
                  L1MonsterInstance boss = (L1MonsterInstance) object;
                  if (boss.getMapId()==pc.getMapId()&&!boss.isDead()){
                  switch(boss.getNpcTemplate().get_npcId()){
                  case 45681: case 45600: case 90007694: case 45684: //更改指定怪物請改這45600為克特90007694
                  hasboss=true;
                  bossname=boss.getName();
                  bossX=boss.getX();
                  bossY=boss.getY();
                  break;
                  }
                  }
                  }
                  }
                  pc.sendPackets(new S_SystemMessage("使用野狼的嗅覺,找尋目標......"));
                  if(hasboss==true){
                  pc.sendPackets(new S_SystemMessage("從 "+bossX+","+bossY+" 處,傳來 "+bossname+" 的氣味~~~"));
                  } else
                  pc.sendPackets(new S_SystemMessage("這裡已經沒有BOSS的氣味,好像晚了一步..."));

=======================================
活動捲軸:打開C_ItemUSe.java

找個好地方加入
              //活動舉軸設定
                  if (itemId == 49319){//活動捲軸 請自行修改
              {
                  if(pc.hasSkillEffect(1530) == false){//此項對應時間位置 也是結束的時候顯示                  
              {
                  pc.sendPackets(new S_SystemMessage(" 您已經再參加活動,無法再次使用!" ));
              }
                  int time = 300 * 1000;//活動時間30分鐘 自行修改
                  L1SkillUse skilluse = new L1SkillUse(); ;
                  pc.sendPackets(new S_SystemMessage("活動時間開始:30分鐘"));
                  pc.setSkillEffect(300,time);                
                  }
                  }
                  }      
                  //活動捲軸設定
=======================================
重生藥水:打開C_ItemUSe.java
找個好地方加入
          else if (itemId == 300007) { //TODO 重生藥水
                  if (pc.getLevel() <= 10) {
                      pc.sendPackets(new S_ServerMessage(79));
                      return;
                  }
                  pc.sendPackets(new S_SkillSound(pcObjid, 6505));
                  pc.broadcastPacket(new S_SkillSound(pcObjid, 6505));
                  pc.getInventory().takeoffEquip(945);//用來脫掉全身裝備
                  pc.setExp(10000);
                  pc.resetLevel();
                  pc.addBaseMaxHp((short)(-1 * (int)((double) pc.getBaseMaxHp() - 12)));
              pc.addBaseMaxMp((short)(-1 * (int)((double) pc.getBaseMaxMp() - 12)));
                  pc.resetBaseAc();
                  pc.resetBaseMr();
                  pc.resetBaseHitup();
                  pc.resetBaseDmgup();
                  pc.sendPackets(new S_OwnCharStatus(pc));
                  pc.sendPackets(new S_ServerMessage(822));
                  pc.getInventory().removeItem(l1iteminstance, 1);
                  }
                  //end
========================================
解卡點捲軸:打開C_ItemUSe
找個好地方加入
                  //end
                  else if (itemId == 300008) { //TODO 解卡點卷軸 by xpatax
                      Connection connection = null;
                      connection = L1DatabaseFactory.getInstance().getConnection();
                      PreparedStatement preparedstatement = connection.prepareStatement("UPDATE characters SET LocX=33442,LocY=32797,MapID=4 WHERE account_name=?");
                      preparedstatement.setString(1, client.getAccountName());
                      preparedstatement.execute();
                      preparedstatement.close();
                      connection.close();
                      pc.sendPackets(new S_SystemMessage("除了你,其他角色已回到奇岩村。"));
                      pc.getInventory().removeItem(l1iteminstance, 1);
                  }
                  //end
================================
衝武防廣播打開C_ItemUSe.java
搜尋pc.sendPackets(new S_ServerMessage(161, s, sa, sb));
上面加入
      //TODO 衝武防超過安定值多少廣播(最初衝武防廣播原創 by 楓印銘心)
      if (Config.SuccessBoard){
          if (item.getItem().getType2() == 1
                  && item.getEnchantLevel() >= item.getItem().get_safeenchant() + Config.WeaponOverSafeBoard ) {
              L1World.getInstance().broadcastPacketToAll(new S_ServerMessage(166,"\\f=*【" + pc.getName() + "】的【+" + item.getEnchantLevel() + " " + item.getName() + "】強化成功 *"));
          } else if (item.getItem().getType2() == 2
                  && item.getEnchantLevel() >= item.getItem().get_safeenchant() + Config.ArmorOverSafeBoard ) {
              L1World.getInstance().broadcastPacketToAll(new S_ServerMessage(166,"\\f=*【" + pc.getName() + "】的【+" + item.getEnchantLevel() + " " + item.getName() + "】強化成功 *"));
          }
      }
      //end
===========================================
變性藥水:打開C_ItemUSe.java

找個好地方加入
          //add 變性藥水 by terry0412
          } else if (itemId == 49313) {
            pc.getInventory().takeoffEquip(945);//用來脫掉全身裝備
            if (pc.getPartnerId() != 0)//結婚中無法變性
                pc.sendPackets(new S_SystemMessage("結婚中無法變性,本伺服器不支持斷背山"));
            L1World.getInstance().broadcastPacketToAll(new S_SystemMessage("\\fR【注意,有人偷變性嘍.有人偷變性嘍。】"));
            if (pc.get_sex() == 0) {
            pc.set_sex(1);
            pc.sendPackets(new S_SystemMessage("下體已割除,現在起妳是全新的女人(.)人(.)        【請重新登入】"));
            } else {
            pc.set_sex(0);
            pc.sendPackets(new S_SystemMessage("胸膛慢慢浮出來了,現在起你是全新的男人oUo        【請重新登入】"));
            }
            if (pc.getClassId() == 61) //男騎士
            pc.setClassId(48); //女騎士
            else if (pc.getClassId() == 48) //女騎士
            pc.setClassId(61); //男騎士
            if (pc.getClassId() == 138) //男妖精
            pc.setClassId(37); //女妖
            else if (pc.getClassId() == 37) //女妖
            pc.setClassId(138); //男妖精
            if (pc.getClassId() == 734) //男法師
            pc.setClassId(1186); //女法師
            else if (pc.getClassId() == 1186) //女法師
            pc.setClassId(734); //男法師
            if (pc.getClassId() == 2786) //男黑妖
            pc.setClassId(2796); //女黑妖
            else if (pc.getClassId() == 2796) //女黑妖
            pc.setClassId(2786); //男黑妖
            if (pc.getClassId() == 6658) //男龍騎
            pc.setClassId(6661); //女龍騎
            else if (pc.getClassId() == 6661) //女龍騎
            pc.setClassId(6658); //男龍騎
            if (pc.getClassId() == 6671) //男幻術
            pc.setClassId(6650); //女幻術
            else if (pc.getClassId() == 6650) //女龍騎
            pc.setClassId(6671); //男龍騎
            if (pc.getClassId() == 0) //男王子
            pc.setClassId(1); //女公主
            else if (pc.getClassId() == 1) //女公主
            pc.setClassId(0); //男王子
            pc.sendPackets(new S_OwnCharStatus(pc));
            pc.sendPackets(new S_SkillSound(pcObjid, 1183));
            pc.broadcastPacket(new S_SkillSound(pcObjid, 1183));
            pc.getInventory().removeItem(l1iteminstance, 1);
            pc.save();
          //end
==========================================
經驗加倍藥水
打開C_ItemUSe找個好地方加入
          //add 經驗加倍藥水
          } else if (itemId == 62006) { // 經驗加倍藥水(150%)
              if (pc.hasSkillEffect(7000) == false
                      && pc.hasSkillEffect(7001) == false
                      && pc.hasSkillEffect(7002) == false) { // 確認經驗加倍狀態
                  int time = 1200 * 1000; // 設置時間為20分
                  pc.setSkillEffect(7000, time); // 增加魔法狀態7000
                  pc.getInventory().removeItem(l1iteminstance, 1); // 移除物品
                  pc.sendPackets(new S_SystemMessage(
                      "受到經驗之神的祝福,狩獵後經驗提升1.5倍!"));
              }else{
                  int time = pc.getSkillEffectTimeSec(7000)+
                  pc.getSkillEffectTimeSec(7001)+
                  pc.getSkillEffectTimeSec(7002);
                  pc.sendPackets(new S_SystemMessage("經驗加倍藥水時間剩餘 "+time+" 秒"));
              }
          } else if (itemId == 62007) { // 經驗加倍藥水(200%)
              if (pc.hasSkillEffect(7000) == false
                      && pc.hasSkillEffect(7001) == false
                      && pc.hasSkillEffect(7002) == false) { // 確認經驗加倍狀態
                  int time = 1200 * 1000; // 設置時間為1小時
                  pc.setSkillEffect(7001, time); // 增加魔法狀態7001
                  pc.getInventory().removeItem(l1iteminstance, 1); // 移除物品
                  pc.sendPackets(new S_SystemMessage(
                      "受到經驗之神的祝福,狩獵後經驗提升2.0倍!"));
              }else{
                  int time = pc.getSkillEffectTimeSec(7000)+
                  pc.getSkillEffectTimeSec(7001)+
                  pc.getSkillEffectTimeSec(7002);
                  pc.sendPackets(new S_SystemMessage("經驗加倍藥水時間剩餘 "+time+" 秒"));
              }
          } else if (itemId == 62008) { // 經驗加倍藥水(250%)
              if (pc.hasSkillEffect(7000) == false
                      && pc.hasSkillEffect(7001) == false
                      && pc.hasSkillEffect(7002) == false) { // 確認經驗加倍狀態
                  int time = 1200 * 1000; // 設置時間為1小時
                  pc.setSkillEffect(7002, time); // 增加魔法狀態7002
                  pc.getInventory().removeItem(l1iteminstance, 1); // 移除物品
                  pc.sendPackets(new S_SystemMessage(
                      "受到經驗之神的祝福,狩獵後經驗提升2.5倍!"));
              }else{
                  int time = pc.getSkillEffectTimeSec(7000)+
                  pc.getSkillEffectTimeSec(7001)+
                  pc.getSkillEffectTimeSec(7002);
                  pc.sendPackets(new S_SystemMessage("經驗加倍藥水時間剩餘 "+time+" 秒"));
              }
===============================================
改武卷一次沖加10
打開核心裡面的C_RequestItemUSe
找如圖
40130這個物品是我的武捲編號
200的部分是最高可以衝到200
10的部分一次加10
if(i == 40129 || i == 40130)
      {
        if(l1iteminstance.getEnchantLevel() <= 200)
          return 10;
        return l1iteminstance.getEnchantLevel() < 200 || l1iteminstance.getEnchantLevel() > 200 ? 1 : 2;
      } else
      {
        return 1;
      }
  }
========================================馬祖護身符
打開L1PcInstance.java
加入
//        媽祖護身符
      for(Object item : getInventory().getItems()) { // 檢查身上道具
       
            L1ItemInstance Item = (L1ItemInstance) item;
       
          if (Item.getItem().getItemId() == 100001 && isDead()== true) { // 有護身符
                     
                  getInventory().removeItem(Item, 1); // 刪除身上的護身符
             
                sendPackets(new S_SystemMessage("受到媽祖的保佑,死亡不掉落經驗值!"));
           
                      setExpRes(2); // 修正不掉經驗值還能買經驗值
                         
                          exp = 0 ;
                  }
                }
===================================
3/27 0220新增
絕對防親友團方法
打開C_GiveItem.java
找地方加入
      if (pc.isGm()) //GM丟東西給怪物廣播
          L1World.getInstance().broadcastPacketToAll(new S_ServerMessage(
          166, (new StringBuilder("\\fYGM轉移公告:【")).append(pc.getName()).append("】\\fY將【").append(item.getName()).append("】轉\\fY移至怪\\fY物 【").append(target.getName()).append("】\\fY身上。").toString()));
      //GM丟東給怪物會廣播
      for (Object petObject : pc.getPetList().values()) {
          if (petObject instanceof L1PetInstance) {
              L1PetInstance pet = (L1PetInstance) petObject;
              if (item.getId() == pet.getItemObjId()) {
==========================================
稍後會補上gm交易公告.gm丟東西至地上廣播.gm上限廣播ID
=========================================

沒有留言:

張貼留言