Add Bow Damge and Fire #261
@ -87,7 +87,7 @@ public class Recording implements Listener {
|
|||||||
(hand == EnumWrappers.Hand.OFF_HAND && p.getInventory().getItemInOffHand().getType() == Material.BOW)))
|
(hand == EnumWrappers.Hand.OFF_HAND && p.getInventory().getItemInOffHand().getType() == Material.BOW)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
RecordSystem.bowSpan(p, true, hand == EnumWrappers.Hand.MAIN_HAND?1:0);
|
RecordSystem.bowSpan(p, true, hand != EnumWrappers.Hand.MAIN_HAND);
|
||||||
ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_DIG) {
|
ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_DIG) {
|
||||||
@Override
|
@Override
|
||||||
public void onPacketReceiving(PacketEvent e) {
|
public void onPacketReceiving(PacketEvent e) {
|
||||||
@ -96,7 +96,7 @@ public class Recording implements Listener {
|
|||||||
|
|
||||||
PacketContainer packetDig = e.getPacket();
|
PacketContainer packetDig = e.getPacket();
|
||||||
if(packetDig.getPlayerDigTypes().read(0) == EnumWrappers.PlayerDigType.RELEASE_USE_ITEM) {
|
if(packetDig.getPlayerDigTypes().read(0) == EnumWrappers.PlayerDigType.RELEASE_USE_ITEM) {
|
||||||
RecordSystem.bowSpan(e.getPlayer(), false, hand == EnumWrappers.Hand.MAIN_HAND?0:1);
|
RecordSystem.bowSpan(e.getPlayer(), false, hand != EnumWrappers.Hand.MAIN_HAND);
|
||||||
ProtocolLibrary.getProtocolManager().removePacketListener(this);
|
ProtocolLibrary.getProtocolManager().removePacketListener(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -275,6 +275,4 @@ public class Recording implements Listener {
|
|||||||
FightPlayer fp = Fight.getFightPlayer(p);
|
FightPlayer fp = Fight.getFightPlayer(p);
|
||||||
return fp == null || !fp.isLiving() || FightState.getFightState() == FightState.SPECTATE;
|
return fp == null || !fp.isLiving() || FightState.getFightState() == FightState.SPECTATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ public class RecordSystem {
|
|||||||
* PlayerItemPacket (0x07) + int EntityId + String item + boolean enchanted + String slot
|
* PlayerItemPacket (0x07) + int EntityId + String item + boolean enchanted + String slot
|
||||||
* ArrowSpawnPacket (0x08) + int EntityId
|
* ArrowSpawnPacket (0x08) + int EntityId
|
||||||
* FireballSpawnPacket (0x09) + int EntityId
|
* FireballSpawnPacket (0x09) + int EntityId
|
||||||
* BowSpanPacket (0x0A) + int EntityId + boolean start + int hand
|
* BowSpanPacket (0x0A) + int EntityId + boolean start + hand
|
||||||
* PlayerDamagePacket (0x0B) + int EntityId
|
* PlayerDamagePacket (0x0B) + int EntityId
|
||||||
* SetOnFire (0x0C) + int EntityId + boolean perma
|
* SetOnFire (0x0C) + int EntityId + boolean perma
|
||||||
Lixfel markierte diese Unterhaltung als gelöst
|
|||||||
*
|
*
|
||||||
@ -175,11 +175,11 @@ public class RecordSystem {
|
|||||||
spawnEntity(e);
|
spawnEntity(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static synchronized void bowSpan(Entity e, boolean start, int hand) {
|
public static synchronized void bowSpan(Entity e, boolean start, boolean offHand) {
|
||||||
Chaoscaot markierte diese Unterhaltung als gelöst
Lixfel
hat
Bögen kann man nur in der MainHand spannen? (Meines wissens nach?) Bögen kann man nur in der MainHand spannen? (Meines wissens nach?)
|
|||||||
Recorder.rByte(0x0A);
|
Recorder.rByte(0x0A);
|
||||||
Recorder.rInt(e.getEntityId());
|
Recorder.rInt(e.getEntityId());
|
||||||
Recorder.rBoolean(start);
|
Recorder.rBoolean(start);
|
||||||
Recorder.rInt(hand);
|
Recorder.rBoolean(hand);
|
||||||
Recorder.flush();
|
Recorder.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren
Dieses Packet kommt mir nicht ganz richtig vor, FireTick ist doch eine sache, welche zufällig weggeht, somit ist es nicht deterministisch, also weiß ich nicht, ob das abspielen dieser nicht dann mal länger und mal kürzer ist, was nicht im Sinne des Packets sein dürfte.
Deshalb wird der FireTick auch, wenn die perma flag auf false ist, nur für 21 Ticks abgespielt, somit ist relativ genau, kann aber noch max. 1 Sekunde off sein.