Мод кликер.

12
0
Уважаемый all, подскажите.
На генераторе булыжника (вода + лава) приходится долго стоять с зажатой ЛКМ. А нельзя ли выполнять это действие программно, ну отловил KeyEvent на забиндинную кнопку, пошел каблу рубить, еще раз нажал, перестал рубить. Мод клиентский, а значит надо как-то и серверу сообщить о своих действиях. (получилось два вопроса в одном).
Проще - как имитировать attack/destroy, а сервер считал, что игрок сам это делает?

EVENT_BUS.post(что-то) ? А что вместо "что-то" писать?
 
Если вы хотите сделать обычно каблодестройер - это делается в пару строчечек.
Мод клиентский, а значит надо как-то и серверу сообщить о своих действиях. (получилось два вопроса в одном).
Не понимаю вашей проблемы, чем это поможет, и что так сложно сделать прокси или если 1.6 то "@NetworkMod"
[merge_posts_bbcode]Добавлено: 01.02.2016 15:09:26[/merge_posts_bbcode]

А что вместо "что-то" писать?
Наверняка можно посмотреть на то, что показывает вам IDE. Там должен быть класс наследующий Event.class
 
FanKar написал(а):
Если вы хотите сделать обычно каблодестройер - это делается в пару строчечек.
Мод клиентский, а значит надо как-то и серверу сообщить о своих действиях. (получилось два вопроса в одном).
Не понимаю вашей проблемы, чем это поможет, и что так сложно сделать прокси или если 1.6 то "@NetworkMod"

Ну как бы народ предлагает в настройках установить attack/destroy на клавишу на клавиатуре, положить тяжелый предмет на клавиатуру (книжку например) и идти пить чай. Но это не true подход. Надо именно в моде сделать такое, чтоб нажал и пошел чай пить, пришел а инвентарь забит каблой.
 
Вовсе не обязательно мод писать.Если кликеры-программы которые справляются с этим.(клик на клиенте)
 
Вопрос решен самостоятельно.
В недрах файла Minecraft.class нашелся приватный метод:
Код:
private void sendClickBlockToController(boolean leftClick)
    {
        if (!leftClick)
        {
            this.leftClickCounter = 0;
        }

        if (this.leftClickCounter <= 0 && !this.thePlayer.isUsingItem())
        {
            if (leftClick && this.objectMouseOver != null && this.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
            {
                BlockPos blockpos = this.objectMouseOver.getBlockPos();

                if (this.theWorld.getBlockState(blockpos).getBlock().getMaterial() != Material.air && this.playerController.onPlayerDamageBlock(blockpos, this.objectMouseOver.sideHit))
                {
                    this.effectRenderer.addBlockHitEffects(blockpos, this.objectMouseOver);
                    this.thePlayer.swingItem();
                }
            }
            else
            {
                this.playerController.resetBlockRemoving();
            }
        }
    }
Копипаст и соотвествующие правки в TickEvent и проблема решена.

Можно закрывать.
 
Можете дать фотку этого генератора булыжника.
[merge_posts_bbcode]Добавлено: 01.02.2016 20:45:04[/merge_posts_bbcode]

Аш с первых версий майнкрафта (когда добавили редстоун и поршни) можно строить МЕХАНИЗМ генератора булыжника.
А то что вы хотите сделать это чит.
 
Сам ты чит, это обычный автокликер. И как бы ломание булыги автоматизировать в ваниле нельзя.
 
Dragon2488 написал(а):
Сам ты чит, это обычный автокликер. И как бы ломание булыги автоматизировать в ваниле нельзя.
Можно, видел видео, где Wither применялся для этого.


Серверу пофиг, тяжелую книгу ты на ЛКМ положил или программно это сделал. Программно как-то удобней.
 
Назад
Сверху