а если в настройках поставить дизейбл бодиблок? такое же будет или неТ?
я думаю тайна раскрыта
В High Five Mobius коллизия монстра хранится в двух вариантах:
<span>getTemplate</span><span>()</span><span>.</span><span>getCollisionRadius</span><span>()</span><br><span>getTemplate</span><span>()</span><span>.</span><span>getCollisionHeight</span><span>()</span>
- текущая (может меняться):
<span>_currentCollisionRadius</span><br><span>_currentCollisionHeight</span>
Поля объявлены в Npc.java:
После смерти отдельной «мертвой» коллизии не задаётся. Труп продолжает использовать текущие значения:
<span>getCurrentCollisionRadius</span><span>()</span><br><span>getCurrentCollisionHeight</span><span>()</span>
Если монстр не увеличивался/уменьшался эффектами, то до и после смерти значения одинаковые.
и второй запрос в гпт
В High Five Mobius нулевая коллизия трупу
не выставляется штатно.
Искать нужно в:
<span>Creature</span><span>.</span><span>java</span><br><span>Npc</span><span>.java</span><br><span>Attackable</span><span>.</span><span>java</span><br><span>Monster</span><span>.java</span><br><span>DecayTaskManager</span><span>.</span><span>java</span>
После doDie() объект получает статус dead, но:
<span>getCurrentCollisionRadius</span><span>()</span><br><span>getCurrentCollisionHeight</span><span>()</span>
по-прежнему возвращают:
<span>_currentCollisionRadius</span><br><span>_currentCollisionHeight</span>
Никакого:
<span>setCollision</span><span>(</span><span>0</span><span>, </span><span>0</span><span>)</span>
или
<span>_currentCollisionRadius</span><span> </span><span>=</span><span> </span><span>0</span><span>;</span><br><span>_currentCollisionHeight</span><span> </span><span>=</span><span> </span><span>0</span><span>;</span>
в Mobius H5 нет.
Если трупы на сервере должны становиться «проходимыми», это обычно делается вручную, например:
<span>@</span><span>Override</span><br><span>public</span><span> </span><span>boolean</span><span> </span><span>doDie</span><span>(</span><span>Creature</span><span> </span><span>killer</span><span>)</span><br><span>{</span><br><span> </span><span>if</span><span> (</span><span>!super.</span><span>doDie</span><span>(</span><span>killer</span><span>))</span><br><span> {</span><br><span> </span><span>return</span><span> </span><span>false</span><span>;</span><br><span> }</span><br><br><span> </span><span>_currentCollisionRadius</span><span> </span><span>=</span><span> </span><span>0</span><span>;</span><br><span> </span><span>_currentCollisionHeight</span><span> </span><span>=</span><span> </span><span>0</span><span>;</span><br><br><span> </span><span>broadcastInfo</span><span>();</span><br><span> </span><span>return</span><span> </span><span>true</span><span>;</span><br><span>}</span>
Либо через пакет NpcInfo, где клиенту отправляются:
<span>writeF</span><span>(</span><span>_collisionRadius</span><span>);</span><br><span>writeF</span><span>(</span><span>_collisionHeight</span><span>);</span>
То есть в H5 Mobius нет места, где «должна» автоматически выставляться нулевая коллизия трупа — по исходникам она вообще не предусмотрена.