jiang199 發表於 2016-12-6 00:08

開個人商店位置判斷



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;
   }
}


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

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

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

s111444g 發表於 2016-12-8 07:14

謝謝大大分享

vn523205 發表於 2016-12-8 16:41

感謝您的分享;P;P

012357890 發表於 2017-2-26 16:18

很實用喔 收著收著 也許哪一天會用到

bennyst 發表於 2021-7-15 20:33

頁: [1]
查看完整版本: 開個人商店位置判斷