Author Topic: Написал скрипт, нужно немного подправить  (Read 5400 times)

0 Members and 1 Guest are viewing this topic.

Tamago4aRUS

  • Освоившийся
  • **
  • Posts: 32
    • View Profile
Весь скрипт готов. Смысл в том что игра от первого лица, а именно, курсор(прицел) всегда отцентрован по центру(масло масленное). Его надо опустить максимально вниз.
Code: [Select]
MOVE(720,$_ymax)
Это неработает. Типо у меня монитор на 1440*900. я взял 1440/2=720. И по таким вычислениям пришел к тому что если курсор наклонится по координате 720,$_ymax то и перс будет смотреть вниз, т.е. себе в ноги. Помогите

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
В 3D игре правильно работает только MOVER
Code: (clickermann) [Select]
MOVER(0,1000)

Tamago4aRUS

  • Освоившийся
  • **
  • Posts: 32
    • View Profile
А что означают 0 и 1000? Если у меня монитор 1440*900 мне так и указывать?  Хотелось бы чёткие цифры.  ;)
« Last Edit: August 27, 2017, 09:10:34 AM by Tamago4aRUS »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Команда MOVER перемещает курсор относительно текущих координат.
MOVER(0,1000)  означает что курсор по Y опустится вниз на 1000 пикселей. Этого вполне достаточно чтобы камера уперлась в ноги.

Tamago4aRUS

  • Освоившийся
  • **
  • Posts: 32
    • View Profile
Вообщем проверил. Да он опускает голову вниз на 1000(не знаю чего). А потом поднимает на то же место. Так и должно быть?

Tamago4aRUS

  • Освоившийся
  • **
  • Posts: 32
    • View Profile
А что означают 0 и 1000? Если у меня монитор 1440*900 мне так и указывать?  Хотелось бы чёткие цифры.  ;)
Вы считаете , что ваш персонаж при команде вниз 1000 и высоте монитора 900 пикселей будет засовывать голову чётко между ног или как страус в песок?  ;D
Даже в справке написано что эта функция повернёт голову не ровно на 1000, а хрен знает на сколько. В моей игре надо 10000 ставить.

Oraven

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

Может нужно более плавно опускать. Тогда надо через цикл

// Данный код опускает камеру на 10 пикселей каждые 5 миллисекунд 100 раз
Code: (clickermann) [Select]
FOR($a=0,$a<100) // повторяем 100 раз
   MOVER(0,10) // опускаем на 10 пикселей вниз
   WAITMS(5)
END_CYC
HALT

Естественно ты можешь попробывать свои числа. 1000 это так для примера чтоб уж наверника.

Tamago4aRUS

  • Освоившийся
  • **
  • Posts: 32
    • View Profile
Вообщем возвращалась в ту же точку потому что... Вообщем в этой игре если зажать ALT то ты как бы вращаешь головой но тело смотрит прямо. Таким образом ты можешь как бы бежать например и оборачиваться за спину, чтобы посмотреть нет ли никого сзади(а то убьют). Такая механика есть в таких играх как: PUBG, DayZ Standalone и т. д. Вообще чтобы запустить скрипт у меня стоит комбинация клавиш ALT + A. Естественно зажимая ALT игра думает что я хочу просто "повертеть" головой. Вообщем-то это я исправил. Но вот проблема, хоть там 1 укажешь, или 100, или 1000. Это сути не меняет. Персонаж опустит точку зрения всегда на одинаковое количество хрен знает какой единицы измерения. Вот так вот. И если несколько раз писать этот код:
Code: (clickermann) [Select]
MOVER(0,1000)
MOVER(0,1000)
MOVER(0,1000)
или вот так:
Code: (clickermann) [Select]
MOVER(0,1000)
WAITMS(100)
MOVER(0,1000)
WAITMS(100)
MOVER(0,1000)
WAITMS(100)
или вот так:
Code: (clickermann) [Select]
FOR($a=0,$a<100)
   MOVER(0,10)
   WAITMS(5)
END_CYC
или вот так:
Code: (clickermann) [Select]
WHILE($var1 = 1)
      MOVER(0,1000)
      $var1 = 1//Я знаю что эта строчка необязательна
END_CYC
Вообщем хоть миллион раз напишешь этот код, один хрен, он повернётся только 1 раз. Т.е. чтоб вы понимали, за весь скрипт, пока вы его не отключите и заново не включите, этот код MOVER сработает один раз, даже если в разных местах кода стоит, к примеру первый MOVER будет на 3 строчке, а второй MOVER на 100, эффект один и тот же. Я так понимаю это не доработка самой программы.
« Last Edit: August 27, 2017, 10:35:25 PM by Tamago4aRUS »

Tamago4aRUS

  • Освоившийся
  • **
  • Posts: 32
    • View Profile
Просто набор тупых слов и букв. Я уже сказал что всё пробовал, и по 1 пикселю, и раз в секунду, и так б*я и сяк, за весьс крипт работает один раз. Давай я тебе дам код, и ты сам убедишься в глупости твоего комментария.

Tamago4aRUS

  • Освоившийся
  • **
  • Posts: 32
    • View Profile
ошибетесь, программа "Clickermann"близка к совершенству в зависимости от последней модификации( хотя очень давно не обновлялась)
Все недоработки только из за вашего отсутствия опыта программирования.
Команда срабатывает - это вы подтверждаете, а уж добиться срабатывания на нужное число "  хрен знает какой единицы измерения" ( всегда это исключительно пиксели вашего монитора и ни что другое!)дело техники и времени на отладку с установкой единичного перемещения и задержек!
Бывают игры которые отсекают все перемещения более 2-3 пикселей, возможно это именно ваш вариант. Согласитесь, что за одну десятую секунды сложно переместить курсор на размер вашего монитора.
Тупить кончайте, займитесь отладкой работающих команд в вашем приложении.
как вы себе представляете игру где ты мышь можешь двигать на 3-4 пикселя? нет никакого нужного числа, в моём случае 1 будем называть пиксель и 1000 пикселей и 10000 пикселей это одно и то же, мышь передвигается на одно и тоже расстояние, и я это проверил

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
ты вообще читал как работает тот самый MOVER?

Синтаксис:

MOVER (x, y) - перемещает курсор мышки относительно текущего положения


Параметры:
x, y - величины, на которые указатель будет сдвинут по соотв. осям


Примечания
Инструкция не работает в оконном режиме
Несмотря на схожее поведение с MOVE($_xmouse+1, $_ymouse+1), инструкция MOVER(1,1) использует другой механизм работы и к тому же немного быстрее выполняется
Как выяснилось, данная процедура работает немного странно и сдвигает курсор не на то количество пикселей, что указано. Нормального поведения можно добиться только опытным путем


MOVER не заменим в 3д играх, где требуется перемещать камеру. та величина "количество пикселей", это не совсем "количество пикселей", и как написано в справке "нормального поведения можно добиться только опытным путем", а зависит эта величина от настроек в твоей игре "чувствительность мыши".

ты вот все тестируешь на сдвиг (0,1000), ну или не 1000 а 10, не важно. но почему бы не потестить в начале как экран будет перемещаться в право или в лево, ну или в верх, ато все в низ да в низ.

Code: (clickermann) [Select]
wait(5) //задержка перед стартом
FOR($a=0,$a<500) // повторяем 500 раз
   MOVER(5,0) // по тихоньку смещаем камеру в право, если слишком большие прыжки камеры, то уменьшаем перемещение, иначе, если смещение слишком мало, то увеличиваем.
   WAITMS(50)  //если слишком быстро все, то увеличиваем задержку, или наоборот
END_CYC
HALT


кстати такого вот перемещения камеры как делает MOVER, ты нигде больше не найдешь, кроме как в кликермане, так что не следует говорить про какието там недоработки программы.


Quote
Вообщем хоть миллион раз напишешь этот код, один хрен, он повернётся только 1 раз. Т.е. чтоб вы понимали, за весь скрипт, пока вы его не отключите и заново не включите, этот код MOVER сработает один раз, даже если в разных местах кода стоит, к примеру первый MOVER будет на 3 строчке, а второй MOVER на 100, эффект один и тот же.

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



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

« Last Edit: August 28, 2017, 01:15:06 AM by dramster »

Tamago4aRUS

  • Освоившийся
  • **
  • Posts: 32
    • View Profile
ты вообще читал как работает тот самый MOVER?

Синтаксис:

MOVER (x, y) - перемещает курсор мышки относительно текущего положения


Параметры:
x, y - величины, на которые указатель будет сдвинут по соотв. осям


Примечания
Инструкция не работает в оконном режиме
Несмотря на схожее поведение с MOVE($_xmouse+1, $_ymouse+1), инструкция MOVER(1,1) использует другой механизм работы и к тому же немного быстрее выполняется
Как выяснилось, данная процедура работает немного странно и сдвигает курсор не на то количество пикселей, что указано. Нормального поведения можно добиться только опытным путем


MOVER не заменим в 3д играх, где требуется перемещать камеру. та величина "количество пикселей", это не совсем "количество пикселей", и как написано в справке "нормального поведения можно добиться только опытным путем", а зависит эта величина от настроек в твоей игре "чувствительность мыши".

ты вот все тестируешь на сдвиг (0,1000), ну или не 1000 а 10, не важно. но почему бы не потестить в начале как экран будет перемещаться в право или в лево, ну или в верх, ато все в низ да в низ.

Code: (clickermann) [Select]
wait(5) //задержка перед стартом
FOR($a=0,$a<500) // повторяем 500 раз
   MOVER(5,0) // по тихоньку смещаем камеру в право, если слишком большие прыжки камеры, то уменьшаем перемещение, иначе, если смещение слишком мало, то увеличиваем.
   WAITMS(50)  //если слишком быстро все, то увеличиваем задержку, или наоборот
END_CYC
HALT


кстати такого вот перемещения камеры как делает MOVER, ты нигде больше не найдешь, кроме как в кликермане, так что не следует говорить про какието там недоработки программы.


Quote
Вообщем хоть миллион раз напишешь этот код, один хрен, он повернётся только 1 раз. Т.е. чтоб вы понимали, за весь скрипт, пока вы его не отключите и заново не включите, этот код MOVER сработает один раз, даже если в разных местах кода стоит, к примеру первый MOVER будет на 3 строчке, а второй MOVER на 100, эффект один и тот же.

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



к стати вот еще вспомнил, если выставить очень большое единоразовое смещение, то курсор как бы выскакивает за пределы окна игры, так что пробуй малыми смещениями и меняй задержки между смещениями. ну и в настройках игры (если таковы есть) поковыряйся, чувствительность мыши имеется в виду. ну а если уж никак, то должны быть дополнительные клавиши клавиатуры по перемещению камеры, часто таковы забиндены на нумпаде.
справку читал ещё до создания темы. я прекрасно понимаю что это не какие не пиксели, но товарищ сверху думает это так. какая разница тестировать вверх или в низ. 1 10 100 1000 скрипт распознает однаково. он двигает мышь одним рывком, и все. один рывок, а дальше звук отключения скрипта.(и не надо говорить что надо выставить в настрйоках чтобы бесконечно скрипты проигрывались). тот код что вы написали выше, я ещё более выше уже описывал ОДНО И ТОЖЕ С***! он не двигает там ничего 500 раз. 1 рывок и отключение скрипта. все. что не понятного?

Tamago4aRUS

  • Освоившийся
  • **
  • Posts: 32
    • View Profile
ты вот говоришь, надо не писать миллион чего-то раз а просто сделать код. "ты должен писать только то, что тебе требуется, а не просто перебирать варианты" я и сделал то что мне надо. наклонись курсор в низ игры ВСЁ! но он не наклоняет как надо

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Quote
1 рывок и отключение скрипта. все. что не понятного?

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

Tamago4aRUS

  • Освоившийся
  • **
  • Posts: 32
    • View Profile
Окей я протестил твой код. Скрипт опускает мышь по 5 единиц хрен знает чего в низ 500 раз. Функция и правда рабочая, просто у меня руки заточены под ***. Ну и конечно да, справку надо дополнить. То что там написано вообще не понятно.