RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2423668 views

Aleks Versus Moderator 17.02.2026 04:46 (1 week ago)

mkir,
этот код обычно и используют.

Если поддержка игры не предполагается на 5.7.0, можно написать его на настоящем цикле, так код будет работать быстрее.

! $findname    
yes_its_here = 0
loop local i = 1 while i <= countobj step i += 1:
	if instr($findname, $getobj(i):
		yes_its_here = 1
		jump 'loop_end'
	end
end
:loop_end

Но если такой поиск происходит в игре постоянно и часто, более быстрый вариант — это хранить названия предметов в массиве и производить поиск с помощью регулярного выражения по массиву:

pos = arrcomp($objnames, '*\bмеч\b*') & ! найдёт позицию первого предмета, содержащего слово "меч"
yes_its_here = iif(pos = -1, 0, 1)
! $findname не содержит спецсимволов и знаков пунктуации
pos = arrcomp($objnames, '*\b<<$findname>>\b*')
yes_its_here = iif(pos = -1, 0, 1)
Aleks Versus Moderator 18.02.2026 17:00 (6 days ago)

Аааа. Я тут запутался в логике вопросов ответов. Это не Марк спрашивал.

n3m0,
да, поясни, пожалуйста, чего ты хочешь добиться? Тебе нужно выделить предмет визуально?

Некоторые вопросы по работе с предметами освещены тут: https://aleksversus.github.io/howdo_faq/docs/howdo/contents/items/add_item. Для плееров последних версий немного неактуальна информация по замене предметов в определённой позиции.

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

Log in or Register to post comments.