mvk_1 |
Дата: Пятница, 11.04.2014, 23:24 | Сообщение # 1
|
{}
Сообщений: 579
Статус: Offline
|
Для создания кликабельного, не мигающего текста на экране, используя только SF придется создавать 2 скрипта. Если Вам не по кайфу юзать горы скриптов, то их можно спихать в отдельную папку и потом загрузить опкодом 0AAB
Сначала создадим скрипт который будет отображать наш текст. Код {$Cleo .cs} thread 'TEXT' 30@ = Render.CreateFont("Arial", 12, 0x4) //Рендерим текст. Если по русски, то задаем ему параметры: "Arial" - Шрифт, 12 - размер, 0x4 - дополнительное св-во (У нас это обводка) SAMP.GetScreenResolution(0@, 1@) //Получаем разрешение экрана 0@ /= 4 //Делим разрешение по Х на 4 1@ /= 6 //Делим разрешение по У на 6 while true //Создаем цикл wait 0 0AF0: $State = get_int_from_ini_file "CLEO\TextState.ini" section "State" key "mode" //получаем целое число 1/0 из файла if $State == 0 //Если в файл было записано число 0 then //Значит Render.DrawText(30@, "Текст", 0@, 1@, 0xFFFFFFFF) // Рисуем наш текст с параметрами задаными в ячейке 30@, в координатах 0@;1@, и с белым не прозрачным цветом else //Иначе (если в файле записан не 0) Render.DrawText(30@, "Текст", 0@, 1@, 0xFF44FF44)// Рисуем наш текст с параметрами задаными в ячейке 30@, в координатах 0@;1@, и с зеленым не прозрачным цветом end end
Все, заходим в игру и видим около чата наш текст, если изменить в ini значение, то он станет зеленым.
Теперь создадим возможность клацать по тексту, тем самым изменяя значение в ini, что приведет к изменению цвета нашего текста. Создаем 2ой скрипт и вписываем в него следующее Код {CLEO .cs} thread 'CLICK' 30@ = Render.CreateFont("Arial", 12, 0x4) //Теперь запоминаем те же параметры текста while true wait 0 SAMP.GetScreenResolution(0@, 1@) //и находим те же координаты на экране 0@ /= 4 //по Х 1@ /= 6 //и по У 2@ = Render.FontDrawLength(30@, "Текст") //Запоминаем длину текста, что бы не подбирать значение вручную 2@ += 5 //увеличиваем ее на 5, что бы кликалось на краю последней буквы if 0ab0: 1 //Если нажата клавиша 1 - это левая кнопка мыши then //значит if 0AB1: call @is_cursor_here 4 start 0@ 1@ end_offset 2@ 20 //используем функцию определения координат курсора (made by gc0de) then //Если курсор мыши находится в прямоугольнике с координатами начала 0@;1@ и имеет размеры 2@;20(2@ - длина текста, 20 - высота) 0AF0: $State = get_int_from_ini_file "CLEO\TextState.ini" section "State" key "mode" //загружаем из файла параметр if $State == 0 //Если этот параметр равен 0 then 0AF1: write_int 1 to_ini_file "CLEO\TextState.ini" section "State" key "mode" //записываем значение 1, в результате это значение прочитает наш первый скрипт и изменит цвет текста else //Иначе - если параметр не был равен 0 0AF1: write_int 1 to_ini_file "CLEO\TextState.ini" section "State" key "mode" //записываем значение 0 end repeat wait 0 until 8ab0: 1 //Проверяем, что клавиша (ЛКМ) отпущена, чтобы небыло мгновенного изменения параметра end end end //Ниже функция от gc0de для определения положения курсора, она описана на BH самим gc0de, кто хочет разбираться в ней, а не тупо скопировать - читайте там! :is_cursor_here 0AB1: call @GetCursorPos 0 4@ 5@ if and 001D: 4@ > 0@ 001D: 5@ > 1@ then 005A: 0@ += 2@ 005A: 1@ += 3@ if and 001D: 0@ > 4@ 001D: 1@ > 5@ then 0485: return_true else 059A: return_false end 0062: 0@ -= 2@ 0062: 1@ -= 3@ else 059A: return_false end 0062: 4@ -= 0@ 0062: 5@ -= 1@ 0AB2: ret 2 4@ 5@ :GetCursorPos 0AA2: 0@ = load_library "user32.dll" 0AA4: 1@ = get_proc_address "GetCursorPos" library 0@ 0AC8: 2@ = allocate_memory_size 8 0AA5: call 1@ num_params 1 pop 0 2@ 0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0 2@ += 4 0A8D: 4@ = read_memory 2@ size 4 virtual_protect 0 0AC9: free_memory 2@ 0AA3: free_library 0@ 0AB2: ret 2 3@ 4@
Вот собственно и все, что бы заставить какой-то скрипт выполнять действия при клике на текст, просто замените стандартную активацию проверкой значения которое записано в ini.
Автор: SR_Team
Skype: artemxin123 ВКонтакте: id48252170 Магазин аккаунтов. Лучшие аккаунты.
Сообщение отредактировал mvk_1 - Суббота, 12.04.2014, 12:37 |
|
|
|
DubStep_ |
Дата: Пятница, 11.04.2014, 23:40 | Сообщение # 2
|
{ }
Сообщений: 1406
Статус: Offline
|
Спасибо полезно
|
|
|
|
RAKSHA1337 |
Дата: Суббота, 12.04.2014, 09:52 | Сообщение # 3
|
Советник
Сообщений: 784
Статус: Offline
|
Да ну нафиг 10 скриптов создавать, лучше всё в одном. p.s. В одном скрипте можно создавать больше чем 1 поток.
В казино рандом. Но рандом в программах - это генератор псевдослучайных чисел, который написан ручками человека. А значит есть формула! Есть алгоритм! Есть тактика! Кто не согласен - ставьте минус, после того как докажете обратное. https://habrahabr.ru/post/196442/
|
|
|
|
Кoт |
Дата: Суббота, 12.04.2014, 10:50 | Сообщение # 4
|
Сообщений: 1074
Статус: Offline
|
полный копипаст ведь -___- .Автора указал бы)
|
|
|
|
|