Хук на выпиливание опыта

Версия Minecraft
1.7.10
77
3
8
Хочу выпилить опыт, но чет у меня это не в какую не ворочается, скорее всего я туповат :)

С хуками работаю первый раз, но вроде понимаю что да как... по примеру у меня в принципе из тутариала у меня все работает...

Крч, нашел метод в EntityPlayer (addExperienceLevel) который добавляет опыт игроку, окей, значит его надо сделать пустым, как я понял что бы сделать метод пустым надо что бы в начале метода хук сделал return;

Не вопрос...

Java:
    @Hook
    public static void addExperience(EntityPlayer player) {
        return;
    }

Захожу в игру, убиваю моба, опыт все равно летит, что не так?

P.S.
Хуки работают...

Java:
    @Hook
    public static void resize(Minecraft mc, int x, int y) {
        System.out.println("Resize, x=" + x + ", y=" + y);
    }

все как надо у меня выводит в консоль ресайз

1)При хуке надо прописывать все аргументы которые есть в методе, иначе трабл.
2)returnCondition = ReturnCondition.ALWAYS и все работает как надо

Java:
    @Hook(returnCondition = ReturnCondition.ALWAYS)
    public static void addExperience(EntityPlayer player, int p) {
        System.out.println("Тю-тю опыт");
    }

больше опыт не капает
 
Последнее редактирование:
1,470
19
189
77
3
8
Странный совет) ну да ладно, в качестве эксперимента я все же добавил переменную инт, мало ли, вдруг он не берет в таргет метод, но все же это не помогло, метод все так же выполняется. Даже отдельно прописал таргет на метод, тоже не помогло
 
77
3
8
1550421910931.png
из примера в туториале я понял что это делается примерно так

попробуй в аннотацию дописать аргумент returnCondition = ReturnCondition.ALWAYS

Дописывал, все равно так же все
 
77
3
8
Решил пойти от обратного, сетнуть переменную опыта на ноль
Java:
    @Hook(injectOnExit = true)
    public static void addExperience(EntityPlayer player) {
        player.experience = 0;
        return;
    }
и понял что хук в принципе не выполняется, таааакс....
 
Последнее редактирование:

tox1cozZ

aka Agravaine
8,455
598
2,892
Окей, открываем оригинальный метод и смотрим на его сигнатуру:
public void addExperience(int amount)
О боги! У него есть аргумент!
Давай-ка попробуем добавить это дело в хук, авось заработает.
Java:
@Hook(returnCondition = ReturnContidion.ALWAYS)
public static void addExperience(EntityPlayer thisObject, int amount){
    
}
Ну нифига себе! Теперь наш хук нашел нужный метод!
Как же теперь сделать чтобы сразу после вызова хук вызывался return(метод стал пустым по сути)? Элементарно! Добавляем в аннотацию параметр returnCondition = ReturnContidion.ALWAYS.
Смотрите, смотрите все!!! Я тру-кодер!!! ЗАРАБОТАЛООООООО!!!!
 
77
3
8
О боги! У него есть аргумент
Вопрос уже решен, ответ моего тупняка в сполере решения, зачем еще сцену разигрывать?
я вроде то же самое писал. или нет?
Да дружище, ты все правильно написал, по этому и пролайкал твои сообщения, просто по раздельности все писал ты:) не целостный ответ...
 
Последнее редактирование:
Сверху