You are not logged in.
Но если речь идёт о камере, то проще прочитать готовые значения углов из структуры камеры (CCamera + 0x878 cameraRotation RwV3D).
Там нули почему-то...и мне ещё помимо чтения нужна и запись. И вот ещё пытаюсь записать координаты позиции камеры по адресу 0xB6F99C + 0x30, предварительно записав по адресу 0x52B730 команду retn (0xC3, спасибо Seemann'у за разъяснения), однако ничего не происходит, т.е. значение не меняется. У меня есть подозрения, что копать надо в районе 0x52B730, однако в ассемблере я почти ноль, самому не разобрать, может кто-нибудь помочь?
Offline
Какие значения возвращает проверка на Line Of Sight? (Находится по адресу - 0x56A490)
P.S Line of sight - проверка на видимость чего-либо или проверка на то, находится ли перед "чем-то" "что-то" (Это как я понимаю).
Offline
Какие значения возвращает проверка на Line Of Sight? (Находится по адресу - 0x56A490)
P.S Line of sight - проверка на видимость чего-либо или проверка на то, находится ли перед "чем-то" "что-то" (Это как я понимаю).
Вроде как возвращает координаты точки коллизии между двумя указаными точками, вот тут можешь посмотреть.
Offline
А нужно проверять умер ли актер, после проверки на существование, или после смерти актер не существует.
Offline
А нужно проверять умер ли актер, после проверки на существование, или после смерти актер не существует.
После смерти актёр всё ещё существует, конечно нужно проверять, раз есть проверка - значит проверить можно)
Offline
Спасибо. У меня вопрос как получить координаты курсора? Точнее перемещение мышки, во время игры.
Это пригодилось бы, наверное, не только мне.
Last edited by 444andrei444 (12-09-2011 11:09)
Offline
Спасибо. У меня вопрос как получить координаты курсора? Точнее перемещение мышки, во время игры.
Это пригодилось бы, наверное, не только мне.
Ну это проще простого)
0A4A: store_joystick_X_offset_to 201@ Y_offset_to 202@
Offline
А я как то не придавал значения этому опкоду. Щас проверю. Это в переменные запишутся координаты положения курсора на экране?
Last edited by 444andrei444 (12-09-2011 16:12)
Offline
А я как то не придавал значения этому опкоду. Щас проверю. Это в переменные запишутся координаты положения курсора на экране?
Нет, это скорость перемещения курсора в определённом направлении. Скажи что ты хочешь сделать и может я подскажу, как это реализовать) А лучше в асю или скайп. 492226129 и alexvor295
Last edited by Voron295 (12-09-2011 16:32)
Offline
Существенно вопрос такой. Можно ли перевести экранные координаты в игровые. Для чего спросите вы, я хочу сделать управление различными действиями с помошью курсора. Знаю есть код переводящий игровые координаты в экранные. А мне надо наоборот.
Offline
Существенно вопрос такой. Можно ли перевести экранные координаты в игровые. Для чего спросите вы, я хочу сделать управление различными действиями с помошью курсора. Знаю есть код переводящий игровые координаты в экранные. А мне надо наоборот.
Offline
спасибо. Действительно работает правда при повороте камеры наблюдаются некоторые неточности но это не так важно.
Offline
А можно ли создать актера спускающегося на парашуте? Если да, то как?
уже нашел. справку надо внимательно читать.
Last edited by 444andrei444 (16-09-2011 14:44)
Offline
А можно ли создать актера спускающегося на парашуте? Если да, то как?
Насколько я понимаю, можно... Сам только учусь, посему - миссия A Home In The Hills в помощь...
Господа, такой вопрос... А как в клео скрипте проверить находится ли герой около какого-то объекта в игровом мире? Например, около бильярдного стола? Модель стола #K_POOLTABLESM ID 2964... ? Пробовал опкодом 0472, как в оригинальном мэйне. Но если как параметр ставить модель - СБ не компилирует скрипт. Если ID - игра вылетает...
Try not. Do or do not, there is no try.
Offline
А как в клео скрипте проверить находится ли герой около какого-то объекта в игровом мире? Например, около бильярдного стола? Модель стола #K_POOLTABLESM ID 2964... ? Пробовал опкодом 0472, как в оригинальном мэйне. Но если как параметр ставить модель - СБ не компилирует скрипт. Если ID - игра вылетает...
Попробуй так:
actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@) 0866: get_object_in_sphere 1@ 2@ 3@ radius 5.0 handle_as 0@ if 0@ <> -1 then if 09CC: object 0@ model_is 2964 then .............. end end
Offline
Короче, нашел способ всегда отображать прицел в точке, куда смотрит камера игрока, как заставить стрелять педа в эту точку, а не перед собой (Т.е не нажимая кнопку прицела, а нажимая атаку).
P.S Пытаюсь сделать прицел как в вайс-сити.
Last edited by Jack Daniel's (16-09-2011 14:33)
Offline
Короче, нашел способ всегда отображать прицел в точке, куда смотрит камера игрока, как заставить стрелять педа в эту точку, а не перед собой (Т.е не нажимая кнопку прицела, а нажимая атаку).
P.S Пытаюсь сделать прицел как в вайс-сити.
Я такой способ уже давным давно нашёл...
Offline
Очень информативно
Offline
Yoda wrote:А как в клео скрипте проверить находится ли герой около какого-то объекта в игровом мире? Например, около бильярдного стола? Модель стола #K_POOLTABLESM ID 2964... ? Пробовал опкодом 0472, как в оригинальном мэйне. Но если как параметр ставить модель - СБ не компилирует скрипт. Если ID - игра вылетает...
Попробуй так:
Спасибо за совет, но нет. Игра вылетает при старте.
Тут варианты, которые пробовал. Отмечу, что это всё объекты defined в main.scm... Пробовал находить эти объекты также Интерсептором, но, во-первых, он их не нашёл, а, во-вторых, не знаю как потом проверку делать...
Try not. Do or do not, there is no try.
Offline
Пробовал находить эти объекты также Интерсептором, но, во-первых, он их не нашёл, а, во-вторых, не знаю как потом проверку делать...
Статические объекты (объекты карты) искать нельзя, только динамические.
Тут варианты, которые пробовал
Ошибки:
1.
0472: not actor $PLAYER_ACTOR near_object_in_rectangle 23@ radius 5.0 5.0 flag 0 on_foot
В 23@ должен быть записан хэндл существующего объекта - см. пример использования в main.scm.
2.
0866: get_object_in_sphere 23@ 25@ 27@ radius 5.0 handle_as 31@ 0984: 30@ = object 31@ model
Перед тем, как производить действия над объектом (или машиной, актёром) необходимо убедиться, что объект существует, т.е. между 0866: и 0984: надо вставить проверку на существование объекта.
3.
// 0006: 29@ = 2964 // (POOL_SCRIPT) // 00D6: if and // 803B: not 29@ == 30@ // and reverse 30@ == 23@
Зачем такой огород? Лучше и проще так:
if and 30@ <> 2964
Ещё лучше воспользоваться спец. опкодом для проверки модели (вариант 4)
Last edited by Den_spb (16-09-2011 22:35)
Offline
Статические объекты (объекты карты) искать нельзя, только динамические.
Да, всё дело видимо именно в этом... А в чем собственно разница между статическими и динамическими? Простыми словами... И еще пара вопросов ниже...
1. В 23@ в опколе 0472 должен быть записан хэндл существующего объекта - см. пример использования в main.scm.
В main.scm опкоду 0472 предшествует 029B. В чём суть этого опкода? Что он делает (что в данном случае значит инициировать) с предметом?
2.Перед тем, как производить действия над объектом (или машиной, актёром) необходимо убедиться, что объект существует, т.е. между 0866: и 0984: надо вставить проверку на существование объекта.
Это понятно. Это тестовый скрипт был. А вылет обуславливался попыткой найти статический объект.
3.Зачем такой огород? Лучше и проще так:... Ещё лучше воспользоваться спец. опкодом для проверки модели (вариант 4)
Я с языками программирования не знаком. Пишу так, как компилирует СБ. А он таких опкодов (<>) не знает. Он их на "огород" меняет.
И, собственно, еще один вопрос - как в игре отследить второй поток с одним именем? Например, если зайти в Грин Ботлз Бар МемХакер покажет два активных потока ARCADE (поскольку там два игровых автомата). Я понимаю как через клео скрипт отследить поток и его переменные. Вопрос как отследить второй поток с тем же именем?
Last edited by Yoda (19-09-2011 09:44)
Try not. Do or do not, there is no try.
Offline
Я с языками программирования не знаком. Пишу так, как компилирует СБ. А он таких опкодов (<>) не знает. Он их на "огород" меняет.
Знает, нормально компилирует.
Скажи, ты вместо открытия своего исходника каждый раз декомпилируешь скрипт? Это распространённая ошибка новичков, надо не декомпилировать каждый раз, а открыть свой txt исходник и работать с ним.
[small][/small]
Offline
Знает, нормально компилирует. Скажи, ты вместо открытия своего исходника каждый раз декомпилируешь скрипт? Это распространённая ошибка новичков, надо не декомпилировать каждый раз, а открыть свой txt исходник и работать с ним.
Нет. Я редактирую txt. Другое дело, что у меня каждая строчка в txt начинается с опкода... Ну кроме лейблов (двоеточие) и инфы (//), конечно... Что касается <> СБ скомилирует как "if not ==". Мне в txt проще и понятнее так написать.
Last edited by Yoda (19-09-2011 09:40)
Try not. Do or do not, there is no try.
Offline
Да, всё дело видимо именно в этом... А в чем собственно разница между статическими и динамическими? Простыми словами... И еще пара вопросов ниже...
Динамические объекты - это те объекты, модели которых прописаны в файле object.dat (ломающиеся и перемещаемые объекты). Помимо этого, динамическими являются любые объекты, созданные скриптом.
В main.scm опкоду 0472 предшествует 029B. В чём суть этого опкода? Что он делает (что в данном случае значит инициировать) с предметом?
Это команда создания объекта (аналог опкода object create). Разница в том, как определяется высота размещения объекта. Object init: опорная точка объекта размещается на высоте Z. Object create: нижняя граница модели объекта размещается на высоте Z.
Он их на "огород" меняет.
Дело не в знаках, а в том, что ты сначала записываешь число в переменную, а затем сравниваешь значения двух переменных, вместо того, чтобы просто сравнить число со значением переменной.
Это понятно. Это тестовый скрипт был. А вылет обуславливался попыткой найти статический объект.
Нет. Скрипт не знает о том, что ему надо искать статический объект.
Что касается <> СБ скомилирует как "if not =="
В скомпилированном файле присутствуют только номера опкодов и их параметры. При декомпиляции скрипта SB добавляет в код вспомогательные фразы и описания в соответствии с файлом sascm.ini и выводит его в таком виде на экран.
Offline
Динамические объекты - это те объекты, модели которых прописаны в файле object.dat (ломающиеся и перемещаемые объекты). Помимо этого, динамическими являются любые объекты, созданные скриптом.
Хм... тогда странно... Все эти объекты прописаны в object.dat (KB_BANDIT_U, NEIL_SLOT, ROULETTE_TBL, BLCK_JACK, OTB_MACHINE, K_POOLTABLESM, + ряд моделек для аркадных игр). Но как в игре определить находится ли СиДжей рядом пока не понимаю...
Try not. Do or do not, there is no try.
Offline