Клео-собейт - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Alowir, Sanoxxx  
Клео-собейт
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
полный копипаст ведь -___- .Автора указал бы)

mvk_1 Дата: Суббота, 12.04.2014, 16:31 | Сообщение # 5
{}
Сообщений: 579
Статус: Offline
Кoт, на СМ не было. Автор указан)


Skype: artemxin123
ВКонтакте: id48252170
Магазин аккаунтов. Лучшие аккаунты.

  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума