Author Topic: Можно ли написать пользовательскую функцию скриптом?  (Read 1961 times)

0 Members and 1 Guest are viewing this topic.

Пытливый

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Например хочу сделать примерно так:
Code: [Select]
fun(GetColorXY, $X, $Y)
 GetScreen()
 $result = Pxl($X, $Y)
end_fun
...
if (GetColorXY(1,1) = 0)
 print("Темно")
else
 print("Светло")
end_if

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Зачем усложнять?
Code: (clickermann) [Select]
$X=10
$Y=10

GETSCREEN
IF(PXL($X,$Y)=0)
   PRINT("Темно")
ELSE
   PRINT("Светло")
END_IF

Пытливый

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
Нет, такое решение не подходит. Мне нужно слегка проапгрейдить родную функцию Pxl() которая будет возвращать цвет пикселя. У меня в скрипте таких парных вызовов больше полусотни. Писать перед каждым вызовом Pxl() дополнительно вызов GetScreen() меня утомило. Я вот удивляюсь, почему этот вызов изначально в ней не сделан, если без него она работает неправильно?

Пытливый

  • Освоившийся
  • **
  • Posts: 21
    • View Profile
С чего это оно не согласуется? Я спросил, как СКРИПТОМ написать функцию, получил предложение использовать WinApi - вот это действительно мало согласуется с моим вопросом.
Quote
По моему довольно странно ради одного пикселя обновлять графический буфер программы, учитывая размеры современных мониторов. Кроме того PXL прекрасно работает с содержимым графического буфера, даже без GETSCREEN  перед каждым вызовом. Поэтому желаемая вами форма апгрейда совсем не рациональна и для большинства пользователей не актуальна
Так и я о том-же.  В 4.6 версии мне вызывать GETSCREEN не требовалось. Перешел на 4.12 и без вызова GETSCREEN PXL() тупо возвращает 0 цвет.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
В старых версиях кликера редактор делал снимки в тот же буфер что и GETSCREEN. В новых буферы изолированны.
Поэтому у некоторых, кто запускал скрипт в режиме редактора, могло сложиться ощущение что GETSCREEN вообще не нужен. GETSCREEN пишут там где требуется получить актуальный снимок экрана. Можно сделать один снимок а потом серией условий проанализировать его.

Покажи свой скрипт, может его можно оптимизировать.
« Last Edit: September 10, 2017, 09:05:24 AM by Oraven »