在我嘗試製作反轉熱插件的冒險中,我意識到我需要更多的知識來處理延遲以及Minecraft客戶端和服務器如何操作。我正在開發的當前插件正在處理覆蓋範圍。我必須考慮的一個因素是確定是否因滯後或客戶而造成重大影響。Minecraft/Bukkit - 延遲如何影響命中距離?
我想過一些方法來檢測滯後/高平,以確保遠的命中是由於客戶而不是滯後。我的問題是,誰必須「滯後」纔會發生相當程度的滯後?打人者;被擊中的人;或服務器?
當我說服務器時,如果主機的網速變慢,服務器程序運行緩慢,它會有所作爲嗎?這會影響命中的註冊方式嗎(這會造成很大的命中)嗎?
如果它的事項,我的設置,以確定命中之間的距離僅僅是一個onPlayerHit
事件處理程序:
public void onPlayerHit(EntityDamageByEntityEvent event) {
// make sure they are all players
if (!(event.getEntity() instanceof Player) | !(event.getDamager() instanceof Player))
return;
// get the event's players
Player damaged = (Player) event.getEntity();
Player damager = (Player) event.getDamager();
// get the locations
Location damagedLocation = damaged.getLocation();
Location damagerLocation = damager.getLocation();
// calculate the distance
double distance = damagedLocation.distance(damagerLocation);
// broadcast it to everyone
for (Player p: Bukkit.getOnlinePlayers()) {
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&f" + damager.getDisplayName() + "&3 has just damaged &f" + damaged.getDisplayName() + "&3 from a distance of &4" + distance));
}
}
太棒了你明白了!也許你可以將此標記爲可接受的進一步參考? – ItzBenteThePig