#251 12-06-2020 20:09

SanyaSFM
Registered: 11-05-2020
Posts: 22

Re: Вопросы и предложения по Sanny Builder

wmysterio wrote:
SanyaSFM wrote:

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

Потому, что так и будет. Нет такого опкода, который это делает, ибо никому в голову не придёт рассчитывать такую точность настолько часто. Можно сделать функцию, которая будет это проверять, чтобы не писать кучу IF-оф. Вот я на коленке смастерил такую:

{$CLEO}
jump @skip_funcs

:angle_in_range
0087: 30@ = 0@  // (float)  
0063: 30@ -= 1@ // (float)
005B: 0@ += 1@  // (float)
1@ = false
if and
0035:   2@ >= 30@ // (float)
0035:   0@ >= 2@  // (float)
then
1@ = true
end
0AB2: ret 1 1@  

:skip_funcs // ОСНОВНОЙ КОД ---------------------------------------------------------------------------------------
wait 1000

while true
wait 0 
    0@ = Actor.Angle($PLAYER_ACTOR)
    if
    0AB1: call_scm_func @angle_in_range 3 target_angle 180.0 range 0.5 current_angle 0@ store_to 1@
    then
    // ...
    end
    0AD1: show_formatted_text_highpriority "Angle: %f~n~State: %d" time 1 0@ 1@
end

Результат:
https://i.ibb.co/qDVh3Qt/image.png

В 1@ будет записано 1, если угол 0@ примерно равен углу 180.0. Примерно — это 180.0 ± 0.5. Можно самостоятельно отрегулировать точность и требуемый угол. Тогда нужно вызываем функцию как обычный опкоп, без проверок и прочих танцев )

Думаю на потом пригодится, но я уже давно не поленился кучу if прописать.
Кстати я намучился с выводом угла на экран, у меня не получалось почему-то вывести информацию об угле.
А у вас выводиться, думаю мне это тоже пригодится.
Скажите а как увеличить список этого: 08DB: set_panel $1153 column 0 header 'DUMMY' data 'IE16' 'IE10' 'IE11' 'IE12' 'IE13' 'IE14' 'IE15' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' ?
Мне нужно больше пунктов для выбора.

Offline

#252 12-06-2020 20:15

wmysterio
From: Ukraine
Registered: 04-03-2011
Posts: 207
Website

Re: Вопросы и предложения по Sanny Builder

SanyaSFM wrote:

Скажите а как увеличить список этого

Количество строк изменить нельзя. Максимум: 12 строк. Тут надо либо рисовать собственную таблицу и писать ручками её принцип работы, или реализовать вручную переключатель для смены одной части списка на другую часть списка.

Last edited by wmysterio (12-06-2020 20:17)

Offline

#253 15-06-2020 12:59

SanyaSFM
Registered: 11-05-2020
Posts: 22

Re: Вопросы и предложения по Sanny Builder

wmysterio wrote:
SanyaSFM wrote:

Скажите а как увеличить список этого

Количество строк изменить нельзя. Максимум: 12 строк. Тут надо либо рисовать собственную таблицу и писать ручками её принцип работы, или реализовать вручную переключатель для смены одной части списка на другую часть списка.

И вот ещё что я хотел бы спросить.
Как заставить этот опкод: 0AD9: write_formatted_text "CLEO version: %d.%d.%d.%d" in_file $hFile 4 0 0 1 записывать данные каждый раз на новую строку?
А то он тупо переписывает существующую.

Offline

#254 15-06-2020 20:30

wmysterio
From: Ukraine
Registered: 04-03-2011
Posts: 207
Website

Re: Вопросы и предложения по Sanny Builder

SanyaSFM wrote:

А то он тупо переписывает существующую.

Есть урок по этой теме.

Offline

#255 15-06-2020 20:57

SanyaSFM
Registered: 11-05-2020
Posts: 22

Re: Вопросы и предложения по Sanny Builder

wmysterio wrote:
SanyaSFM wrote:

А то он тупо переписывает существующую.

Есть урок по этой теме.

Отлично, я до ответа ещё нарвался на другой ваш урок, где описывались режимы открытия фала, но там я не нашёл, то с чем я ещё столкнулся, это: куча мала, то есть всё в одной строке.
Этот же урок, дал мне и на это ответ.
А вот допустим: мне не надо, чтобы трогались, строчки где, что типа этого вначале: "begin", и в конце, типа: "end".
Как заставить записывать данные, как бы по середине этого всего, например:
begin
данные которые нужно записать, без замены существующих
end
и без перезаписи строк где данные?

Offline

#256 16-06-2020 10:13

Goldfish
From: Псков
Registered: 21-04-2015
Posts: 176
Website

Re: Вопросы и предложения по Sanny Builder

SanyaSFM wrote:
wmysterio wrote:
SanyaSFM wrote:

А то он тупо переписывает существующую.

Есть урок по этой теме.

Отлично, я до ответа ещё нарвался на другой ваш урок, где описывались режимы открытия фала, но там я не нашёл, то с чем я ещё столкнулся, это: куча мала, то есть всё в одной строке.
Этот же урок, дал мне и на это ответ.
А вот допустим: мне не надо, чтобы трогались, строчки где, что типа этого вначале: "begin", и в конце, типа: "end".
Как заставить записывать данные, как бы по середине этого всего, например:
begin
данные которые нужно записать, без замены существующих
end
и без перезаписи строк где данные?

записать строку между других строк? Никак, только перезаписать строки целеком, сначала считываешь все строки в память, затем перезаписываешь уже в том порядке и количестве строк, каким нужно

Last edited by Goldfish (16-06-2020 10:13)

Offline

#257 01-07-2020 12:29

SanyaSFM
Registered: 11-05-2020
Posts: 22

Re: Вопросы и предложения по Sanny Builder

Нет опкода для проверки: проденная ли такая-то такая-то миссия?
Можно и с номером миссии.
Обрыскал все опкоды связанные с миссиями, но ничего так и не нашёл.

Offline

#258 03-07-2020 14:53

Seemann
Registered: 07-08-2006
Posts: 2,099

Re: Вопросы и предложения по Sanny Builder

SanyaSFM wrote:

Нет опкода для проверки: проденная ли такая-то такая-то миссия?
Можно и с номером миссии.
Обрыскал все опкоды связанные с миссиями, но ничего так и не нашёл.

это контролируется глобальными переменными. Обычно в конце миссии есть переменная типа $THIS_MISSION_PASSED = 1

Offline

#259 03-07-2020 22:38

SanyaSFM
Registered: 11-05-2020
Posts: 22

Re: Вопросы и предложения по Sanny Builder

Seemann wrote:
SanyaSFM wrote:

Нет опкода для проверки: проденная ли такая-то такая-то миссия?
Можно и с номером миссии.
Обрыскал все опкоды связанные с миссиями, но ничего так и не нашёл.

это контролируется глобальными переменными. Обычно в конце миссии есть переменная типа $THIS_MISSION_PASSED = 1

Значит нету, думаю тут, что мне вы скинули, это типа: если 0 - не пройдена (наверное), если: 1 - то пройдена.
То есть не смысла подставлять номер миссии.
Когда там новая версия саньки билдера будет?
Жду не дождусь подсветки констант, я бы сам это сделал, да вроде не открытого кого исходного, да я и не программист, в дельфи только баловался, язык паскаля и остальные тоже - не знаю.

Offline

#260 04-07-2020 17:47

Seemann
Registered: 07-08-2006
Posts: 2,099

Re: Вопросы и предложения по Sanny Builder

За ходом разработки можно следить тут: https://github.com/sannybuilder

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

Offline

#261 04-07-2020 17:56

Vital
From: Москва
Registered: 07-11-2010
Posts: 64
Website

Re: Вопросы и предложения по Sanny Builder

SanyaSFM wrote:
Seemann wrote:
SanyaSFM wrote:

Нет опкода для проверки: проденная ли такая-то такая-то миссия?
Можно и с номером миссии.
Обрыскал все опкоды связанные с миссиями, но ничего так и не нашёл.

это контролируется глобальными переменными. Обычно в конце миссии есть переменная типа $THIS_MISSION_PASSED = 1

Значит нету, думаю тут, что мне вы скинули, это типа: если 0 - не пройдена (наверное), если: 1 - то пройдена.
То есть не смысла подставлять номер миссии.
Когда там новая версия саньки билдера будет?
Жду не дождусь подсветки констант, я бы сам это сделал, да вроде не открытого кого исходного, да я и не программист, в дельфи только баловался, язык паскаля и остальные тоже - не знаю.

Почему же нету? Просто способ не самый удобный. Но вот я открыл main.scm, нашёл миссию “Big Smoke”, в конце неё обнаружил строчку:

$INTRO_TOTAL_PASSED_MISSIONS += 1

Далее в поиске этой переменной по файлу отыскал такое условие:

if 
  $INTRO_TOTAL_PASSED_MISSIONS == 1 
jf @INT_292 
$ONMISSION = 1 
00BA: show_text_styled GXT 'INTRO_2' time 1000 style 2  // Pa??ep
gosub @SUB_CJ_GOTO_RYDER_HOUSE 
start_mission 12  // Ryder

Из чего делаю вывод, что после прохождения миссии “Big Smoke” значение переменной должно равняться единице. Таким же образом эту же переменную я могу проверить и в своём скрипте, таким образом привязывая какие-то события или возможности к ходу сюжета.

Offline

#262 05-07-2020 20:19

SanyaSFM
Registered: 11-05-2020
Posts: 22

Re: Вопросы и предложения по Sanny Builder

Vital wrote:
SanyaSFM wrote:
Seemann wrote:
SanyaSFM wrote:

Нет опкода для проверки: проденная ли такая-то такая-то миссия?
Можно и с номером миссии.
Обрыскал все опкоды связанные с миссиями, но ничего так и не нашёл.

это контролируется глобальными переменными. Обычно в конце миссии есть переменная типа $THIS_MISSION_PASSED = 1

Значит нету, думаю тут, что мне вы скинули, это типа: если 0 - не пройдена (наверное), если: 1 - то пройдена.
То есть не смысла подставлять номер миссии.
Когда там новая версия саньки билдера будет?
Жду не дождусь подсветки констант, я бы сам это сделал, да вроде не открытого кого исходного, да я и не программист, в дельфи только баловался, язык паскаля и остальные тоже - не знаю.

Почему же нету? Просто способ не самый удобный. Но вот я открыл main.scm, нашёл миссию “Big Smoke”, в конце неё обнаружил строчку:

$INTRO_TOTAL_PASSED_MISSIONS += 1

Далее в поиске этой переменной по файлу отыскал такое условие:

if 
  $INTRO_TOTAL_PASSED_MISSIONS == 1 
jf @INT_292 
$ONMISSION = 1 
00BA: show_text_styled GXT 'INTRO_2' time 1000 style 2  // Pa??ep
gosub @SUB_CJ_GOTO_RYDER_HOUSE 
start_mission 12  // Ryder

Из чего делаю вывод, что после прохождения миссии “Big Smoke” значение переменной должно равняться единице. Таким же образом эту же переменную я могу проверить и в своём скрипте, таким образом привязывая какие-то события или возможности к ходу сюжета.

Хорошо, если не затруднит вас, то помогите тогда, мне нужно чтобы проверялась миссия: Воссоединение семей, на её прохождение.

Offline

#263 05-07-2020 22:10

SanyaSFM
Registered: 11-05-2020
Posts: 22

Re: Вопросы и предложения по Sanny Builder

Извините Виталий, но я нашёл, то что надо раньше вас.
Заморочка жесткая конечно, это то вы правильно написали про проверку: количества пройденных миссий.
Но отчёт миссий для каждого персонажа, в чью миссию вы будите играть: свой.
Например у Свита, если брать первые миссии, это до 9 в хэндле:

$Sweet_Total_Passed_Missions

, хотя миссий на самом деле с ним больше, но вот тут начинается самое интересное.
Оказывается остальные нельзя, начиная с 10, пробить через этот хэндл уже, а нужно пробить зачем-то через вот этот:

$LS_FINAL_Total_Passed_Missions

И что как не странно, снова отсчёт начинается: с 0 и в этот раз до 2, то есть вот такая заморочка, чтобы проверить мне прохождение миссии: Воссоединение семей, надо рыться было не хэндлах Свита.
Да уж...
Ну и намудрёно у этих рокстаровцев в этом мэйне всё.
Также не понятно: зачем было хэндл обзывать: "Финальными миссиями в Лос-Сантосе", если это в действительности не так?
Потому что, когда CJ возвращается назад в Лос-Сантос, после миссий в других городах, ему вроде снова предстоит пройти свыше парочки миссий в этом городе.
То есть я к тому, новичка бы скриптера - это бы точно ввело в заблуждение и он так бы ничего и не нашёл.
Короче кому надо: 1-ые 9 миссий со Свитом на их прохождение проверяются через этот хэндл:

$Sweet_Total_Passed_Missions

Остальные 2 последние (типа) со Свитом проверяются через это хэндл:

$LS_FINAL_Total_Passed_Missions

.
За наводку Виталю всё равно спасибо!

Last edited by SanyaSFM (05-07-2020 22:16)

Offline

#264 06-07-2020 13:21

wmysterio
From: Ukraine
Registered: 04-03-2011
Posts: 207
Website

Re: Вопросы и предложения по Sanny Builder

SanyaSFM wrote:

Также не понятно: зачем было хэндл обзывать: "Финальными миссиями в Лос-Сантосе", если это в действительности не так?

Может потому, что поток, к которому относится переменная $LS_FINAL_Total_Passed_Missions имеет название "LA1FIN2"? В оригинальном мейне несколько "финальных" миссий. В данном случае это относится к первому финалу заданий в Лос Сантосе ("Зелёная сабля") и название переменной вполне закономерное. Если получится достать исходник мейна от R*, то и названия переменных будут точнее, чем те, что есть сейчас.

Offline

#265 07-07-2020 11:55

SanyaSFM
Registered: 11-05-2020
Posts: 22

Re: Вопросы и предложения по Sanny Builder

wmysterio wrote:
SanyaSFM wrote:

Также не понятно: зачем было хэндл обзывать: "Финальными миссиями в Лос-Сантосе", если это в действительности не так?

Может потому, что поток, к которому относится переменная $LS_FINAL_Total_Passed_Missions имеет название "LA1FIN2"? В оригинальном мейне несколько "финальных" миссий. В данном случае это относится к первому финалу заданий в Лос Сантосе ("Зелёная сабля") и название переменной вполне закономерное. Если получится достать исходник мейна от R*, то и названия переменных будут точнее, чем те, что есть сейчас.

Можно ли вобще объекты, созданные скриптом, а не через MEd, сохранять в сейве (то есть сохраняться с ними через дискету)?
И может ли сохранение с кучей объектов приводить к вылету и почему?

Offline

#266 07-07-2020 12:10

wmysterio
From: Ukraine
Registered: 04-03-2011
Posts: 207
Website

Re: Вопросы и предложения по Sanny Builder

SanyaSFM wrote:

Можно ли вобще объекты, созданные скриптом, а не через MEd, сохранять в сейве (то есть сохраняться с ними через дискету)?

Да, если использовать глобальную переменную и ещё несколько опкодов:

$OBJ = Object.Init(#MODEL, X, Y, Z)
Object.KeepInMemory($OBJ) = True
Object.RemoveFromMissionCleanupList($OBJ)

В Main-е это реализовано по разному, но "RemoveFromMissionCleanupList" используется всегда.

SanyaSFM wrote:

И может ли сохранение с кучей объектов приводить к вылету и почему?

Может вылетать, если их слишком много. В моём проекте "Карьерист" я делал карту с помощью скрипта и всё сохраняло, но не так много, как хотелось.

Last edited by wmysterio (07-07-2020 12:11)

Offline

#267 07-07-2020 13:46

SanyaSFM
Registered: 11-05-2020
Posts: 22

Re: Вопросы и предложения по Sanny Builder

wmysterio wrote:
SanyaSFM wrote:

Можно ли вобще объекты, созданные скриптом, а не через MEd, сохранять в сейве (то есть сохраняться с ними через дискету)?

Да, если использовать глобальную переменную и ещё несколько опкодов:

$OBJ = Object.Init(#MODEL, X, Y, Z)
Object.KeepInMemory($OBJ) = True
Object.RemoveFromMissionCleanupList($OBJ)

В Main-е это реализовано по разному, но "RemoveFromMissionCleanupList" используется всегда.

SanyaSFM wrote:

И может ли сохранение с кучей объектов приводить к вылету и почему?

Может вылетать, если их слишком много. В моём проекте "Карьерист" я делал карту с помощью скрипта и всё сохраняло, но не так много, как хотелось.

А можно как-то запретить сохранение объекта в сейв, чтобы он не сохранялся в него?
Так как я всё равно в ini их сохраняю и по сути сохранение в сейв особо то и не требуется.

Offline

Board footer

Powered by FluxBB