You are not logged in.
@d88 -
С точки зрения конечного результата, нет разницы, каким именно способом будет поворачиваться объект - "автоматически" (например, с помощью анимации) или "вручную" (с помощью многократной установки объекту нового угла поворота, который должен с каждым разом увеличиваться на одну и ту же величину). Но для того, чтобы вращение выглядело плавным при "ручном" способе, присвоение нового значения угла поворота должно происходить как можно чаще (желательно - каждый кадр, т.е. в скрипте должен быть только один wait 0).
Offline
Я так и не понял, почему вращение тем способом, который я указал, не плавное?
Оно плавное, но из-за этой ошибки с изменением поворота я не могу использовать эти опкоды.
при вращении по оси X (я так понял, именно это тебе нужно)
Я пробовал со всеми осями, и всегда одно и тоже.
Ты сам пробовал эти опкоды? Я хотел показать видео, но что-то там с ютубом не так, видео не загружается. В общем, там как будто даже не объект поворачивается, а только его модель. Я заставляю его вращаться, к примеру, по оси X, сначала всё нормально, но через секунду как будто поворачивается по оси Z, хотя продолжает вращаться в ту же сторону. Т.е. получается, что его оси не повернулись вместе с ним.
@d88 -
С точки зрения конечного результата, нет разницы, каким именно способом будет поворачиваться объект - "автоматически" (например, с помощью анимации) или "вручную" (с помощью многократной установки объекту нового угла поворота, который должен с каждым разом увеличиваться на одну и ту же величину). Но для того, чтобы вращение выглядело плавным при "ручном" способе, присвоение нового значения угла поворота должно происходить как можно чаще (желательно - каждый кадр, т.е. в скрипте должен быть только один wait 0).
Ну да. Просто было бы удобнее, если бы удалось заставить объект вращаться одним опкодом.
Offline
Offline
@d88, я не пойму, ты в скрипте после вращения используешь получение угла объекта? Ну, опкод 0176? Визуально вращение продолжается в нужном направлении, так ведь?
Так в том-то и дело, что я с этим объектом больше ничего не делаю. И да, визуально вращение продолжается в ту же сторону.
Offline
Offline
Тогда какая тебе разница, что показывает тебе опкод, получающий текущий угол объекта?
Что-то мы тут совсем запутались, о чём речь. Я же ничего про этот опкод не говорил и не использовал его. Я пытался объяснить, что 05A1: и 05A2: работают некорректно, если до их испоьзования задать объекту угол поворота, т.е. Z_angle.
Offline
Что-то мы тут совсем запутались, о чём речь. Я же ничего про этот опкод не говорил и не использовал его. Я пытался объяснить, что 05A1: и 05A2: работают некорректно, если до их испоьзования задать объекту угол поворота, т.е. Z_angle.
Так бы сразу и сказал. Я не мог понять, в чём твоя проблема. Значит объект вращается "криво", если угол Z отличен от нуля?
Offline
d88 wrote:Что-то мы тут совсем запутались, о чём речь. Я же ничего про этот опкод не говорил и не использовал его. Я пытался объяснить, что 05A1: и 05A2: работают некорректно, если до их испоьзования задать объекту угол поворота, т.е. Z_angle.
Так бы сразу и сказал. Я не мог понять, в чём твоя проблема. Значит объект вращается "криво", если угол Z отличен от нуля?
Да, именно так. Я это и пытался объяснить.
Offline
d88 wrote:Да, именно так. Я это и пытался объяснить.
Ясно. Нужно преобразовать локальное вращение в глобальное. Я попробую написать код.
Может, это кому-то пригодится, но я для себя уже написал код, где вращаю объект в цикле с помощью 0453.
Offline
d88,
0A8C: write_memory 0x630DEA size 2 value 0xE990 virtual_protect 1
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
d88,
0A8C: write_memory 0x630DEA size 2 value 0xE990 virtual_protect 1
Нет, надо чтобы кровь не текла у определённого педа и чтобы кровавых следов тоже не было.
Ещё пара вопросов:
1. Можно ли установить педу голос? Вообще-то голоса прописаны в peds.ide для каждого id педа, но походку же можно изменить скриптом, так может, и голос тоже?
2. Есть ли способ поменять угол поворота у объекта, если он прикреплён к кости? Я пробовал в опкоде 070A: менять седьмой параметр, но, похоже, там только два варианта поворота, и не те, что надо.
Last edited by d88 (01-12-2013 14:03)
Offline
2. Есть ли способ поменять угол поворота у объекта, если он прикреплён к кости? Я пробовал в опкоде 070A: менять седьмой параметр, но, похоже, там только два варианта поворота, и не те, что надо
Нет, менять угол крепления нельзя.
Offline
Нет, надо чтобы кровь не текла у определённого педа и чтобы кровавых следов тоже не было.
Такого поля в структуре педа нет, так что надо писать инжект в это место и сверять педов.
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
Пробую создать миссию в васе, но уже есть странная проблема... Когда игра доходит до create_thread @PINCAR - вылетает ошибка... В чем может бы ть проблема? Раньше с таким не сталкивался.
//-------------Mission 1--------------- :MIS1 03A4: name_thread 'MIS1' 0050: gosub @MIS1_57 00D6: if 0112: wasted_or_busted 004D: jump_if_false @MIS1_37 0050: gosub @PINCAR_78 :MIS1_37 0050: gosub @MIS1_46 004E: end_thread :MIS1_46 0004: $1399 = 0 // integer values 00D8: mission_cleanup 0051: return :MIS1_57 0004: $1399 = 1 // integer values 0247: request_model #PCJ600 0247: request_model #BARRACKS 0247: request_model #MAVERICK 038B: load_requested_models 0001: wait 100 ms 00D6: if or 0248: model #PCJ600 available 0248: model #BARRACKS available 0248: model #MAVERICK available 004D: jump_if_false @MIS1_57 00A5: $2140 = create_car #PCJ600 at 305.4366 267.688 16.2197 0186: $2139 = create_marker_above_car $2140 0229: set_car $2140 color_to 1 1 016A: fade 1 2000 ms 0001: wait 2000 ms [b]004F: create_thread @PINCAR [/b] :MIS1_171 0001: wait 1000 ms 02A7: $223 = create_icon_marker_and_sphere 23 at 310.1116 304.3421 18.0921 0002: jump @MIS1_171 :PINCAR 03A4: name_thread 'PINCAR' :PINCAR_10 0001: wait 0 ms 00D6: if 0442: player $2 in_car $2140 004D: jump_if_false @PINCAR_10 0164: disable_marker $2139 :PINCAR_38 0001: wait 0 ms 00D6: if 8442: not player $2 in_car $2140 004D: jump_if_false @PINCAR_38 0186: $2139 = create_marker_above_car $2140 0002: jump @PINCAR_10 004E: end_thread :PINCAR_78 0001: wait 99999999 ms 004E: end_thread
Offline
@Deshefrator - все потоки (threads) нужно располагать ДО миссий. Эта часть скриптов называется майн. В нем находятся все потоки. В миссиях код потоков вставлять нельзя это приведет к ошибке
Offline
Seemann, Не совсем понятно. Что значит до миссий? До потока 'MIS1'?
Offline
А вот такой пример, в миссии создаются сразу несколько потоков:
:NONAME_5 03BC: $769 = create_sphere 369.444 -484.255 12.836 1.0 03BC: $770 = create_sphere 367.767 -471.821 12.836 1.0 03BC: $771 = create_sphere 360.833 -487.561 12.836 1.0 03BC: $772 = create_sphere 369.002 -476.872 12.836 1.0 03BC: $773 = create_sphere 377.34 -473.071 12.836 1.0 03BC: $774 = create_sphere 380.841 -476.128 12.836 1.0 create_thread @N1 create_thread @N2 create_thread @N3 create_thread @P1 create_thread @P2 create_thread @C create_thread @NONAME_7 create_thread @NONAME_8 create_thread @K4 end_thread :N1 thread 'N1' wait 200 if 00F8: player $2 stopped 1 369.444 -484.255 12.836 radius 1.0 1.0 1.5 else_jump @N1 054C: use_GXT_table 'INTRO' 00BC: text_highpriority 'INT1_B' 5000 ms 1 // Didn't think they'd ever let him out. 03BD: destroy_sphere $769 end_thread :N2 thread 'N2' wait 200 if 00F8: player $2 stopped 1 367.767 -471.821 12.836 radius 1.0 1.0 1.5 else_jump @N2 054C: use_GXT_table 'INTRO' 00BC: text_highpriority 'INT1_B' 5000 ms 1 // Didn't think they'd ever let him out. 03BD: destroy_sphere $770 end_thread :N3 thread 'N3' wait 200 if 00F8: player $2 stopped 1 360.833 -487.561 12.836 radius 1.0 1.0 1.5 else_jump @N3 054C: use_GXT_table 'INTRO' 00BC: text_highpriority 'INT1_B' 5000 ms 1 // Didn't think they'd ever let him out. 03BD: destroy_sphere $771 $767 = 1 // integer values jump @K4_80
Last edited by Deshefrator (15-12-2013 10:39)
Offline
@Deshefrator - рекомендую почитать цикл статей "Создание миссии" в справке Sanny Builder (F12->Статьи->Введение в скриптинг)
Offline
02E0: actor $PLAYER_ACTOR aggressive
Эта проверка срабатывает, как я понял, если актёр использует оружие. Но не сразу, а через некоторое время. Видимо, есть какой-то показатель агрессии, и когда он достигает какого-то значения, проверка срабатывает. Можно ли как-то изменять этот показатель? К примеру, чтобы он увеличивался, если актёр выполняет ещё за какие-то действия.
Offline
02E0: actor $PLAYER_ACTOR aggressiveЭта проверка срабатывает, как я понял, если актёр использует оружие. Но не сразу, а через некоторое время. Видимо, есть какой-то показатель агрессии, и когда он достигает какого-то значения, проверка срабатывает. Можно ли как-то изменять этот показатель? К примеру, чтобы он увеличивался, если актёр выполняет ещё за какие-то действия.
Насколько я помню, у меня эта проверка срабатывала, когда игрок находится в агрессивной стойке (к примеру, после удара). Насчёт оружия не знаю.
Здесь идёт не показатель, а просто проверка состояния игрока.
Можно сделать показатель самому, отсчитывая, сколько, к примеру, игрок сделал ударов/убийств за определённый промежуток времени (к примеру за последнюю минуту).
Offline
В оригинале
02E0=IS_CHAR_SHOOTING
Offline
Здравствуйте. Хотелось бы узнать есть ли проверка на то что игрок убил актера? Причем желательно что бы не определялся ближайший актер и проверялся его статус(мертв или нет) а что он был убит именно от рук нашего любимого CJ.
Offline
Узнать, мёртв ли актёр, дальше
CPed +0x764 m_pLastEntityDamaged // CPed *
Сверить со структом игрока.
Last edited by DK22Pac (25-12-2013 23:51)
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline