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

Помощь в создании много функционального телепорта


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

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

если сам разбираться не хочешь и не догоняешь.

А ты когда начинала сразу всё догоняла? И у тебя  звание  помогатор? Не обяснишь этот термин? Или это для украшения? Только не в обиду. Обидеть даже нет в мыслях.

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

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

А ты когда начинала сразу всё догоняла?

Конечно, посмотри, попробуй найти тут на форуме хоть один вопрос от меня, тут есть только одна тема за всё время, и там никто не ответил. А тебе "помогать" нету смысла, потому что ты ко всем пристаёшь, и мне в лс ты тоже писал, только с другим. Ничего сам не делаешь, даже твои таблички что ты выкладывал для разных игр, это куски работы разных пользователей, а не твоей. Где тут изучение? Это называется - воровство. Только другого вида.
Тебе даже тему прислали где всё практически есть, надо чуть чуть подумать, но нет, лучше ты будешь писать что ничего не понятно, и тебе нужен готовый код. Собственно ты так и ставишь вопрос.

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

43 минуты назад, imaginary сказал:

даже твои таблички что ты выкладывал для разных игр,

 здесь Тык мне не кто не помогал, здесь Тык тоже всё сам, здесь Тык Игорь  только с флагами помог, раньше не знал что такое флаги, и Женя научил как четыре таймера в один объеденить остальное сам, 

здесь тык всего одна функция зато не водном трейнере для этой игры её нет тоже сам без подсказок, здесь тык была помощь только с чекбоксами, ты мне помогала женя и MasterGH но скрипт луа полностью твой, я упамянул всех троих, а здесь Тык мой урок скрипт твой но сам сделал на 100 штук от одного до ста чекбоксов в трейнере, так где ты увидела куски разных пользователей? а там где помогали я всегда честно писал кто. Где воровство? Уж если я не хотел обидеть тебя то ты реально обидела!

 

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

Мой пример для integer. Его можно прееделать для float и под твой адрес
-- ctrl + R - сбросить позицию
-- ctrl + X - сохранить в слот X, где X от 1 до 10
-- shift + X - сохранить в слот X, где X от 1 до 10

 

Спойлер

teleport_address = "03D2C6DC"	-- "[[address+XX]+XX]" или через registersymbol()
type_data = 'INTEGER'			-- FLOAT, DOUBLE, INTEGER

-- ctrl + R - сбросить позицию
-- ctrl + X - сохранить в слот X, где X от 1 до 10
-- shift + X - сохранить в слот X, где X от 1 до 10

--класс
Vector3 = {}
function Vector3:new(address, type_data)

	local object = {}
	object.address = address
	object.x = 0
	object.y = 0
	object.z = 0
	object.type_data = type_data
	
	function object:getAddress()
		return self.address 
	end
	
	function object:read()
		if object.type_data == 'FLOAT' then
			object.x = readFloat(object.address)
			object.y = readFloat(getAddress(object.address) + 4)
			object.z = readFloat(getAddress(object.address) + 8)
		elseif object.type_data == 'DOUBLE' then
			object.x = readDouble(object.address)
			object.y = readDouble(getAddress(object.address) + 4)
			object.z = readDouble(getAddress(object.address) + 8)		
		elseif object.type_data == 'INTEGER' then
			object.x = readInteger(object.address)
			object.y = readInteger(getAddress(object.address) + 4)
			object.z = readInteger(getAddress(object.address) + 8)		
		end
		return object
	end
	
	function object:write()
		if object.type_data == 'FLOAT' then
			writeFloat(object.address, object.x)
			writeFloat(getAddress(object.address) + 4, object.y)
			writeFloat(getAddress(object.address) + 8, object.z)
		elseif object.type_data == 'DOUBLE' then
			writeDouble(object.address, object.x)
			writeDouble(getAddress(object.address) + 4, object.y)
			writeDouble(getAddress(object.address) + 8, object.z)		
		elseif object.type_data == 'INTEGER' then
			writeInteger(object.address, object.x)
			writeInteger(getAddress(object.address) + 4, object.y)
			writeInteger(getAddress(object.address) + 8, object.z)		
		end	
	end
	
	function object:print_vector()
		print(string.format("%s, %s, %s", object.x, object.y, object.z))
	end
	
	setmetatable(object, self)
	self.__index = self; 
	return object
end



--класс
Teleport = {}

--тело класса Teleport
function Teleport:new(address, type_data)
	
	local object = {}
	-- Тип данных
	object.type_data = type_data
	-- Адрес
	object.vector3_position = Vector3:new(address, type_data)
	-- Адреса для слотов
	object.vector3_positions = {}
	
	function object:getAddress()
		return self.address 
	end
	
	function object:make_hotkey_reset_position()
	
		local genericHotkey = createHotkey(
				function() 
					object.vector3_position:write()
				end,
				{VK_CONTROL, VK_R}
			)
		genericHotkey.DelayBetweenActivate = 2000
	end

	function object:make_hotkey_save_position(numberKey)
		
		local genericHotkey = createHotkey(
				function()
					speakEnglish("Save position "..numberKey)
					object.vector3_positions[numberKey]:read()
				end, 
				{VK_CONTROL, VK_0 + numberKey}
			)
		genericHotkey.DelayBetweenActivate = 2000
	end

	function object:make_hotkey_load_position(numberKey)
		
		local genericHotkey = createHotkey(
				function() 
					speakEnglish("Load position "..numberKey)
					object.vector3_position:read()
					object.vector3_positions[numberKey]:write()
				end,
				{VK_SHIFT, VK_0 + numberKey}
			)
		genericHotkey.DelayBetweenActivate = 2000
	end

	function object:registry_hot_keys()

		object:make_hotkey_reset_position()

		for numberKey = 1, 10 do
			local addressPosition = Vector3:new(address, type_data)
			addressPosition:read()
			table.insert(object.vector3_positions, addressPosition)
			object:make_hotkey_save_position(numberKey)
			object:make_hotkey_load_position(numberKey)		
		end
	end	
	
	object:registry_hot_keys()
	
	setmetatable(object, self)
	self.__index = self; 
	return object
end

local teleport = Teleport:new(teleport_address, type_data)

 

 

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

2 часа назад, MasterGH сказал:

Мой пример для integer

кажется подойдёт только объясни моменты  мне надо именно под float скидываю ваш скрипт просто поясните там где я Коментарии поставил с вопросами

Спойлер


teleport_address = "03D2C6DC"	-- "[[address+XX]+XX]" или через registersymbol() --  здесь адрес из модуля? а если через registersymbol то можно просто ктивировать скрипт из своого бе кода как есть а  registersymbol вписать из таблици?
type_data = 'INTEGER'			-- FLOAT, DOUBLE, INTEGER

-- ctrl + R - сбросить позицию
-- ctrl + X - сохранить в слот X, где X от 1 до 10 
-- shift + X - сохранить в слот X, где X от 1 до 10

--класс
Vector3 = {}
function Vector3:new(address, type_data)

	local object = {}
	object.address = address
	object.x = 0
	object.y = 0
	object.z = 0
	object.type_data = type_data
	
	function object:getAddress()
		return self.address 
	end
	
	function object:read()
		if object.type_data == 'FLOAT' then
			object.x = readFloat(object.address)
			object.y = readFloat(getAddress(object.address) + 4) // здесь не чего менять не надо?
			object.z = readFloat(getAddress(object.address) + 8)
		elseif object.type_data == 'DOUBLE' then  // здесь должен быть FLOAT --здесь должен быть FLOAT если у меня именно это тип?
			object.x = readDouble(object.address)  
			object.y = readDouble(getAddress(object.address) + 4)
			object.z = readDouble(getAddress(object.address) + 8)		
		elseif object.type_data == 'INTEGER' then
			object.x = readInteger(object.address)
			object.y = readInteger(getAddress(object.address) + 4)
			object.z = readInteger(getAddress(object.address) + 8)		
		end
		return object
	end
	
	function object:write()
		if object.type_data == 'FLOAT' then
			writeFloat(object.address, object.x)
			writeFloat(getAddress(object.address) + 4, object.y)
			writeFloat(getAddress(object.address) + 8, object.z)
		elseif object.type_data == 'DOUBLE' then
			writeDouble(object.address, object.x)
			writeDouble(getAddress(object.address) + 4, object.y)
			writeDouble(getAddress(object.address) + 8, object.z)		
		elseif object.type_data == 'INTEGER' then
			writeInteger(object.address, object.x)
			writeInteger(getAddress(object.address) + 4, object.y)
			writeInteger(getAddress(object.address) + 8, object.z)		
		end	
	end
	
	function object:print_vector()
		print(string.format("%s, %s, %s", object.x, object.y, object.z))
	end
	
	setmetatable(object, self)
	self.__index = self; 
	return object
end



--класс
Teleport = {}

--тело класса Teleport
function Teleport:new(address, type_data)
	
	local object = {}
	-- Тип данных
	object.type_data = type_data
	-- Адрес
	object.vector3_position = Vector3:new(address, type_data)
	-- Адреса для слотов
	object.vector3_positions = {} // в этом месте внутри скобок как я понял надо вписать переменную адреса просто цифрами дописать ?
	// вэтом месте можно ещё слот добавить?
	function object:getAddress()
		return self.address 
	end
	
	function object:make_hotkey_reset_position()
	
		local genericHotkey = createHotkey(
				function() 
					object.vector3_position:write()
				end,
				{VK_CONTROL, VK_R} -- в этом месте назначения горячих клавишь а как их сделать три для разных слотов  ( 	{VK_CONTROL, VK_R,VK_1} 	{VK_CONTROL, VK_R,VK_2} 	{VK_CONTROL, VK_R,VK_3} 
		genericHotkey.DelayBetweenActivate = 2000
	end

	function object:make_hotkey_save_position(numberKey)
		
		local genericHotkey = createHotkey(
				function()
					speakEnglish("Save position "..numberKey)
					object.vector3_positions[numberKey]:read()
				end, 
				{VK_CONTROL, VK_0 + numberKey}
			)
		genericHotkey.DelayBetweenActivate = 2000
	end

	function object:make_hotkey_load_position(numberKey)
		
		local genericHotkey = createHotkey(
				function() 
					speakEnglish("Load position "..numberKey)
					object.vector3_position:read()
					object.vector3_positions[numberKey]:write()
				end,
				{VK_SHIFT, VK_0 + numberKey}
			)
		genericHotkey.DelayBetweenActivate = 2000
	end

	function object:registry_hot_keys()

		object:make_hotkey_reset_position()

		for numberKey = 1, 10 do
			local addressPosition = Vector3:new(address, type_data)
			addressPosition:read()
			table.insert(object.vector3_positions, addressPosition)
			object:make_hotkey_save_position(numberKey)
			object:make_hotkey_load_position(numberKey)		
		end
	end	
	
	object:registry_hot_keys()
	
	setmetatable(object, self)
	self.__index = self; 
	return object
end

local teleport = Teleport:new(teleport_address, type_data)

 

 

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

22 часа назад, Pitronic сказал:

И у тебя  звание  помогатор? Не обяснишь этот термин?

Это модератор, а то есть помощник администрации.  То есть модератор-помогатор :) Это уже как Руслан назвал нашу группу.  А не которые, до сех пор думают, что помогатр - это значит он тут всем помогает бегает :D Прям сидит на сайте в ожидании (караулит), кому бы помочь, да по быстрее! 

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

3 часа назад, MasterGH сказал:

Мой пример для integer.

Вот не хотелось, чтобы давали готовые решения )) Большинство пользователей не хотят учиться, и приходят за готовыми решениями. В данном случае пользователю были даные все возможности. Ему оставалось только два и два сложить, но он не пожелал. И тут в твоем исполнении подоспело готовое решение...

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

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

Да и после получения готового решения, не способны его прочитать в слух и понять что им дали.

 

Это справедливо против тех кто луа хоть не много знает, а я луа не знаю совсем, потому и хотел уточнить некоторые моменты. Это ведь скрипт не под мою игру делался значит нужны правки, поэтому я и уточнил в некоторых местах, я например не спрашивал по информации которую можно самому найти, в интернете, например горячие клавиши в луа.

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

6 часов назад, MasterGH сказал:

-- ctrl + X - сохранить в слот X, где X от 1 до 10
-- shift + X - сохранить в слот X, где X от 1 до 10

Уточнялка - X от 0 до 9.

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

10 часов назад, Pitronic сказал:

Это справедливо против тех кто луа хоть не много знает, а я луа не знаю совсем

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

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

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

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

Мне кажется стоит тему прикрыть. Автору сабжа были даны ответы, ему оставалось их прочитать внимательно, проанализировать и сделать то, что хочется - САМОСТОЯТЕЛЬНО. Продолжение обсуждения и обсасывание темы не приведет ни к чему, отсутствие логики и разумности автора сабжа лежит вне нашей компетенции.

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

  • Xipho закрыл тема
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...

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

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