2013年9月4日 星期三

開商店判斷

l1j.server.server.clientpackets.C_Shop.java

搜尋


 int mapId = pc.getMapId();
  if (mapId != 340 && mapId != 350 && mapId != 360 && mapId != 370) {
   pc.sendPackets(new S_ServerMessage(876));
   return;
  }



往下插入

  for (L1Object object : L1World.getInstance()
    .getVisibleObjects(pc, 7)) { // 7是玩家周圍7格,可以依需求調整為3或者5之類其他數字
   if (object instanceof L1PcInstance) { // 7格內的object有L1PcInstance
    if (((L1PcInstance) object).isPrivateShop()) { //周圍7格內已經有其他玩家開啟個人商店
     pc.sendPackets(new S_SystemMessage
       ("無法在此開啟商店,附近已有其他個人商店。"));
     return;
    }
   } else if (object instanceof L1DwarfInstance) { // 7格內的object有L1DwarfInstance
    pc.sendPackets(new S_SystemMessage
      ("無法在倉庫附近開啟個人商店。")); // 不判斷倉庫的話就直接把這個回圈內的東西刪除
    return;
   }
  }


要怎麼作判斷大概都註解清楚了....

主要是防止一堆玩家擠在一起導致畫面很亂,

而且也可以少許降低封包的流量。


by 9001183ex 浪漫物語

沒有留言:

張貼留言