繁華攏是夢 發表於 2024-9-4 17:41

關於[掉寶公告DB化寫法]的問題

以下為該功能的程式碼

src/l1j/server/server/templates/L1Item.java
程式碼最尾端
下方加入
//掉落物品廣播
private int _broad;

public void setBroad(int i) {
_broad = i;
}
public int getBroad() {
return _broad;
}

src/l1j/server/server/datatables/ItemTable.java
加入
item.setBroad(rs.getInt("broad"));//掉落物品廣播

src/l1j/server/server/datatables/DropTable.java

import java.util.Collection;
import l1j.server.server.serverpackets.S_SystemMessage;
import l1j.server.server.model.Instance.L1PcInstance;


尋找
// ソロの場合
player.sendPackets(new S_ServerMessage(143, npc.getName(), item.getLogName())); // \f1%0が%1をくれました。
上方加入
if (item.getItem().getBroad() == 1) {
BroadCastToAll("恭喜玩家【" + player.getName()+ "】殺死【" + npc.getName() + "】後獲得【" + item.getLogName() + "】");
}
程式碼最尾端加入
private void BroadCastToAll(final String string) {
final Collection<L1PcInstance> allpc = L1World.getInstance()
.getAllPlayers();
for (final L1PcInstance pc : allpc) {
pc.sendPackets(new S_SystemMessage(string));
}
}


DB中etcitem新增
broad tinyint 1 0 (最後面取消打勾)預設0

以上動作我都做完以後,上線測試結果,的確會公告etcitem內broad被設定為1的道具掉落公告
但之後我發現armor跟weapon表中的裝備跟武器有被設定broad為1的物品都不會公告

想詢問了解此問題的大大,我該怎麼更正它...

yasioukon 發表於 2024-9-4 22:26

只改 etcitem 不等於 etcitem+weapon+armor 都被改

繁華攏是夢 發表於 2024-9-7 00:51

本帖最後由 繁華攏是夢 於 2024-9-7 01:19 編輯

yasioukon 發表於 2024-9-4 22:26
只改 etcitem 不等於 etcitem+weapon+armor 都被改感謝紅茶大大很有深度的回答
成功解決問題,感謝你
頁: [1]
查看完整版本: 關於[掉寶公告DB化寫法]的問題