Перейти к содержанию

[CE] CEComboBox1 Select


Medved

Рекомендуемые сообщения

Доброго времени, есть такой код (он отвечает за погоду в игре)
 

function Name_CEComboBox1Select(sender)

if item == Current then writeInteger ('[game.exe+546]+8',0)
end

if item == Bright then writeInteger ('[game.exe+546]+8',1)
end

if item == Raining then writeInteger ('[game.exe+546]+8',2)
end
end

Проблема заключается в том что какое я бы значение не выбирал в "выпадающем списке" он ставит всегда последнее, так вот можете ли подсказать в чём проблема 
 

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Medved сказал:

Проблема заключается в том что какое я бы значение не выбирал в "выпадающем списке" он ставит всегда последнее, так вот можете ли подсказать в чём проблема 

структура кода верна, но не понятно что это за "item" и почему ты выполняешь такое странное сравнение. Почитай вот это, наверное: https://wiki.cheatengine.org/index.php?title=Lua:Class:ComboBox

И в дальнейшем описывай всё более подробно?

Изменено пользователем youneuoy
Ссылка на комментарий
Поделиться на другие сайты

22 минуты назад, youneuoy сказал:

структура кода верна, но не понятно что это за "item" и почему ты выполняешь такое странное сравнение. Почитай вот это, наверное: https://wiki.cheatengine.org/index.php?title=Lua:Class:ComboBox

Сравнение делаю к выбранному пункту в списке  

Ссылка на комментарий
Поделиться на другие сайты

7 часов назад, Medved сказал:

Сравнение делаю к выбранному пункту в списке 

Откуда у тебя взялась переменная item? По идее, тебе нужно sender привести к типу ComboBox, и у него взять поле SelectedIndex (вроде как). И можно даже без проверок сразу писать этот индекс в нужную тебе память, потому что значения будут совпадать (если ты их в правильном порядке в комбобокс добавишь, разумеется).

Ссылка на комментарий
Поделиться на другие сайты

В 04.09.2021 в 12:55, Xipho сказал:

Откуда у тебя взялась переменная item? По идее, тебе нужно sender привести к типу ComboBox, и у него взять поле SelectedIndex (вроде как). И можно даже без проверок сразу писать этот индекс в нужную тебе память, потому что значения будут совпадать (если ты их в правильном порядке в комбобокс добавишь, разумеется).

Сделал так
 

function Name_CEComboBox1Select(sender)
Name_CEComboBox1.onChange = (writeInteger ('[game.exe+546]+8', Name_CEComboBox1.ItemIndex == 0 ))

Name_CEComboBox1.onChange = (writeInteger ('[game.exe+546]+8', Name_CEComboBox1.ItemIndex == 1 ))

Name_CEComboBox1.onChange = (writeInteger ('[game.exe+546]+8', Name_CEComboBox1.ItemIndex == 2 ))
end

 

он начал менять постоянно на 0 и без разницы что я выбираю в списке  

Ссылка на комментарий
Поделиться на другие сайты

Попробуй так

Спойлер

local processName = "game.exe"
local address = '[game.exe+546]+8'

local table_keys = {}
table_keys[0] = 0
table_keys[1] = 1
table_keys[2] = 2

local form = createForm()
local example_box = createComboBox(form)

example_box.items.add("Current")
example_box.items.add("Bright")
example_box.items.add("Raining")

example_box.onChange = function(sender) 
	if getOpenedProcessID() ~= 0 then
		print('write '..table_keys[sender.ItemIndex]..' to '..address)
		writeInteger (address, table_keys[sender.ItemIndex])
	end
end

openProcess(processName)

 

 

 

Ссылка на комментарий
Поделиться на другие сайты

12 часов назад, Medved сказал:

он начал менять постоянно на 0 и без разницы что я выбираю в списке  

Потому что ты зачем-то сравнение записываешь в своем коде, а тебе нужно сам индекс писать.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.