Идея для полезного мода.

Я сам еще не разу не пробовал создавать плагины или моды для игры Minecraft. Но есть желание попробовать реализовать подобное.
У меня дети только начала учиться и хорошо бы подтянуть им скилл по математики. А на игру они реально подсели. Хочу что во время игры выходил диалог в котором была небольшая задачка, вроде 10+5=? Диалог в центре экрана, и чтоб его убрать надо ввести правильный ответ.

Наверное издевательство, но раз в час можно ведь.
Что мне хорошо бы знать для создания этого мода?
 
Основы программирования на Java, а там уже сначала смотреть различные гайды, а потом лишь читать документацию.
 
ну я тут немного полистал, и заметил что есть инструмент MCreator. Наверное начну с него, потом может попробую установить Eclipse и пробовать на java. Большое спасибо )
 
Нет, с него НЕ НАДО начинать. Он сделан для тех, кто не умеет и не хочет учиться.
 
Капча для майнкрафта? хм... интересная идея.
"Чтобы сломать этот блок, докажите что вы не робот, решите уравнение: 0 = y^2 +2*x-3*x*y +4"

Проблема не столько в выводе такого сообщения, сколько в составление этих самых "небольших задачек", т.к. использовать заранее записанные - это не вариант.

Можно начать с Шилтд Java, если нет основ Java, ну а затем определиться с версией minecraft и читать/разбирать соответствующие уроки/примеры

Только не начинайте с MCreator, т.к. с ним вам никто не будет помогать, только хамить и пинать.

А может ещё и самих детей подсадить на написание мода?
 
Точно капча )) Отличная идея. У меня поначалу почти такая же идея была, поставить капчу на зажигалку и динамит, но это наверное вообще сложнее будет )) Девочка любит все строить, а вот мальчик все разрушать, мобов спаунить и взрывать ), а так хоть с пользой это будет делать.

Программировать детей научить, еще точно рановато, пока что пускай считать блоки по быстрому научаться, да и мне будет чем позаниматься )

Задачки простые. Случайно число A, B и само арифметическое действие, пока достаточно сложения и вычитания. Окно всплывает один, два раза в час. Сейчас достаточно такого простого варианта, потом можно и расширить его )

Спасибо за совет. MCreator не буду трогать тогда.
 
И чего вы все так агритесь на MCreator? Ну да, быдлокод, да, лагучий, да, всё в одном классе. Но если руки прямые и умеешь чистить быдлокод - вполне нормальная прога для ленивых + что-то типа учебника по примерам :D
 
Если делать модом то вот код (по-быстрому написал):
Код:
import org.lwjgl.input.Keyboard;

import cpw.mods.fml.client.FMLClientHandler;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import java.util.Random;
import net.minecraft.client.gui.GuiTextField;

public class GuiTest extends GuiScreen{ //GuiTest - наш класс. Унаследуем от GuiScreen
    
    protected GuiTextField inputField; //Это поле ввода
    
    int first = 0;//первое слагаемое
    int second = 0;//второе слагаемое

    public void initGui()//инициализация гуи
    {
        Random rand = new Random();//
        first = rand.nextInt(10);          //создаем два рандомных числа от 0 до 10
        second = rand.nextInt(10);      //
        Keyboard.enableRepeatEvents(true);
        this.inputField = new GuiTextField(this.fontRendererObj, 4, this.height - 12, this.width - 4, 12);
        this.inputField.setMaxStringLength(100);
        this.inputField.setEnableBackgroundDrawing(false);
        this.inputField.setFocused(true);
        this.inputField.setText("");
        this.inputField.setCanLoseFocus(false);
    }
    public boolean doesGuiPauseGame()
    {
        return true;//это чтобы была пауза (можно поставить false, тогда паузы не будет)
    }
    protected void keyTyped(char p_73869_1_, int p_73869_2_)// если нажата клавиша
    {
        if (p_73869_2_ == Keyboard.KEY_E) 
        {
            try
            {
                if(Integer.parseInt(inputField.getText().toLowerCase()) == first+ second)
                {
                    Keyboard.enableRepeatEvents(false);
                    this.mc.displayGuiScreen((GuiScreen)null);
                    this.mc.setIngameFocus();
                    return;
                }
            }
            catch(NumberFormatException ex)
            {
                
            }
        }
        if (p_73869_2_ == 1)//если нажать ESC - проверить решение
        {
            try
            {
                if(Integer.parseInt(inputField.getText().toLowerCase()) == first+ second)
                {
                    Keyboard.enableRepeatEvents(false);
                    this.mc.displayGuiScreen((GuiScreen)null);
                    this.mc.setIngameFocus();
                    return;
                }
            }
            catch(NumberFormatException ex)
            {
                
            }
        }
        if(p_73869_2_ == Keyboard.KEY_RETURN) //если нажать Enter - проверить решение
        {
            try
            {
                if(Integer.parseInt(inputField.getText().toLowerCase()) == first+ second)
                {
                    Keyboard.enableRepeatEvents(false);
                    this.mc.displayGuiScreen((GuiScreen)null);
                    this.mc.setIngameFocus();
                    return;
                }
            }
            catch(NumberFormatException ex)
            {
                
            }
        }
        else
        {
            this.inputField.textboxKeyTyped(p_73869_1_, p_73869_2_);//если нажата другая клавиша - ввести
        }
    }
    public void updateScreen()
    {
        super.updateScreen();
        this.inputField.updateCursorCounter();
    }

    public void drawScreen(int p_73863_1_, int p_73863_2_, float p_73863_3_)
    {
        this.drawDefaultBackground();
        drawRect(2, this.height - 14, this.width - 2, this.height - 2, Integer.MIN_VALUE);
        this.inputField.drawTextBox();
        this.drawCenteredString(this.fontRendererObj, first + " + " + second + " = ", this.width / 2, 20, 16777215);
    }

}

Чтобы вызвать его, пишем:
Код:
Minecraft.getMinecraft().displayGuiScreen(new GuiTest());
misc.php
 
Опачки-очки-тапочки, mr_box, молодец :D
А чего сразу модом не скинул?
 
Назад
Сверху