Начинающий
- Статус
- Оффлайн
- Регистрация
- 25 Ноя 2024
- Сообщения
- 191
- Реакции
- 2
В чем суть проблемы
1. Пробовал обнулять скорость просто отжимать клавиши wasd, но вот неудобно очень, приходится обратно их нажимать после сброса.
2. 2 день пытаюсь скорость обнулить, чет не получается, все перепробовал, ии тоже просил написать в итоге так же не работает.
3. Маппинги вроде правильные,
в чем может быть проблема?
Обнулять скорость мне нужно, что бы кликать по слотам в инвентаре.
1. Пробовал обнулять скорость просто отжимать клавиши wasd, но вот неудобно очень, приходится обратно их нажимать после сброса.
2. 2 день пытаюсь скорость обнулить, чет не получается, все перепробовал, ии тоже просил написать в итоге так же не работает.
3. Маппинги вроде правильные,
Пожалуйста, авторизуйтесь для просмотра ссылки.
C++:
//Movement
void BlockMovement() {
JNIEnv* env = GetJNIEnv();
if (!env) return;
jobject player = Player(env);
if (!player) return;
jclass playerClass = env->GetObjectClass(player);
if (!playerClass) {
ClearJNIException(env);
env->DeleteLocalRef(player);
return;
}
jfieldID inputField = env->GetFieldID(playerClass, "k", "Lgkv;");
if (!inputField) {
ClearJNIException(env);
inputField = env->GetFieldID(playerClass, "k", "Lgdz;");
}
if (!inputField) {
ClearJNIException(env);
env->DeleteLocalRef(playerClass);
env->DeleteLocalRef(player);
return;
}
jobject input = env->GetObjectField(player, inputField);
if (!input) {
ClearJNIException(env);
env->DeleteLocalRef(playerClass);
env->DeleteLocalRef(player);
return;
}
jclass inputClass = env->GetObjectClass(input);
if (!inputClass) {
ClearJNIException(env);
env->DeleteLocalRef(input);
env->DeleteLocalRef(playerClass);
env->DeleteLocalRef(player);
return;
}
jfieldID keyPressesField = env->GetFieldID(inputClass, "a", "Lcur;");
jfieldID leftImpulseField = env->GetFieldID(inputClass, "b", "F");
jfieldID forwardImpulseField = env->GetFieldID(inputClass, "c", "F");
if (!keyPressesField || !leftImpulseField || !forwardImpulseField) {
ClearJNIException(env);
env->DeleteLocalRef(inputClass);
env->DeleteLocalRef(input);
env->DeleteLocalRef(playerClass);
env->DeleteLocalRef(player);
return;
}
jclass playerInputClass = env->FindClass("cur");
if (!playerInputClass) {
ClearJNIException(env);
env->DeleteLocalRef(inputClass);
env->DeleteLocalRef(input);
env->DeleteLocalRef(playerClass);
env->DeleteLocalRef(player);
return;
}
jfieldID emptyInputField = env->GetStaticFieldID(playerInputClass, "b", "Lcur;");
if (!emptyInputField) {
ClearJNIException(env);
env->DeleteLocalRef(playerInputClass);
env->DeleteLocalRef(inputClass);
env->DeleteLocalRef(input);
env->DeleteLocalRef(playerClass);
env->DeleteLocalRef(player);
return;
}
jobject emptyInput = env->GetStaticObjectField(playerInputClass, emptyInputField);
if (emptyInput) {
env->SetObjectField(input, keyPressesField, emptyInput);
env->DeleteLocalRef(emptyInput);
}
else {
ClearJNIException(env);
}
env->SetFloatField(input, leftImpulseField, 0.0f);
env->SetFloatField(input, forwardImpulseField, 0.0f);
ClearJNIException(env);
jmethodID inputTickMid = env->GetMethodID(inputClass, "a", "()V");
if (inputTickMid) {
env->CallVoidMethod(input, inputTickMid);
ClearJNIException(env);
}
else {
ClearJNIException(env);
}
jmethodID applyInputMid = env->GetMethodID(playerClass, "fw", "()V");
if (applyInputMid) {
env->CallVoidMethod(player, applyInputMid);
ClearJNIException(env);
}
else {
ClearJNIException(env);
}
env->DeleteLocalRef(playerInputClass);
env->DeleteLocalRef(inputClass);
env->DeleteLocalRef(input);
env->DeleteLocalRef(playerClass);
env->DeleteLocalRef(player);
}
в чем может быть проблема?
Обнулять скорость мне нужно, что бы кликать по слотам в инвентаре.