You are not logged in.
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
Скажите а как увеличить список этого
Количество строк изменить нельзя. Максимум: 12 строк. Тут надо либо рисовать собственную таблицу и писать ручками её принцип работы, или реализовать вручную переключатель для смены одной части списка на другую часть списка.
Last edited by wmysterio (12-06-2020 20:17)
Offline
SanyaSFM wrote:Скажите а как увеличить список этого
Количество строк изменить нельзя. Максимум: 12 строк. Тут надо либо рисовать собственную таблицу и писать ручками её принцип работы, или реализовать вручную переключатель для смены одной части списка на другую часть списка.
И вот ещё что я хотел бы спросить.
Как заставить этот опкод: 0AD9: write_formatted_text "CLEO version: %d.%d.%d.%d" in_file $hFile 4 0 0 1 записывать данные каждый раз на новую строку?
А то он тупо переписывает существующую.
Offline
SanyaSFM wrote:А то он тупо переписывает существующую.
Есть урок по этой теме.
Отлично, я до ответа ещё нарвался на другой ваш урок, где описывались режимы открытия фала, но там я не нашёл, то с чем я ещё столкнулся, это: куча мала, то есть всё в одной строке.
Этот же урок, дал мне и на это ответ.
А вот допустим: мне не надо, чтобы трогались, строчки где, что типа этого вначале: "begin", и в конце, типа: "end".
Как заставить записывать данные, как бы по середине этого всего, например:
begin
данные которые нужно записать, без замены существующих
end
и без перезаписи строк где данные?
Offline
wmysterio wrote:SanyaSFM wrote:А то он тупо переписывает существующую.
Есть урок по этой теме.
Отлично, я до ответа ещё нарвался на другой ваш урок, где описывались режимы открытия фала, но там я не нашёл, то с чем я ещё столкнулся, это: куча мала, то есть всё в одной строке.
Этот же урок, дал мне и на это ответ.
А вот допустим: мне не надо, чтобы трогались, строчки где, что типа этого вначале: "begin", и в конце, типа: "end".
Как заставить записывать данные, как бы по середине этого всего, например:
begin
данные которые нужно записать, без замены существующих
end
и без перезаписи строк где данные?
записать строку между других строк? Никак, только перезаписать строки целеком, сначала считываешь все строки в память, затем перезаписываешь уже в том порядке и количестве строк, каким нужно
Last edited by Goldfish (16-06-2020 10:13)
Offline
Нет опкода для проверки: проденная ли такая-то такая-то миссия?
Можно и с номером миссии.
Обрыскал все опкоды связанные с миссиями, но ничего так и не нашёл.
Offline
Нет опкода для проверки: проденная ли такая-то такая-то миссия?
Можно и с номером миссии.
Обрыскал все опкоды связанные с миссиями, но ничего так и не нашёл.
это контролируется глобальными переменными. Обычно в конце миссии есть переменная типа $THIS_MISSION_PASSED = 1
Offline
SanyaSFM wrote:Нет опкода для проверки: проденная ли такая-то такая-то миссия?
Можно и с номером миссии.
Обрыскал все опкоды связанные с миссиями, но ничего так и не нашёл.это контролируется глобальными переменными. Обычно в конце миссии есть переменная типа $THIS_MISSION_PASSED = 1
Значит нету, думаю тут, что мне вы скинули, это типа: если 0 - не пройдена (наверное), если: 1 - то пройдена.
То есть не смысла подставлять номер миссии.
Когда там новая версия саньки билдера будет?
Жду не дождусь подсветки констант, я бы сам это сделал, да вроде не открытого кого исходного, да я и не программист, в дельфи только баловался, язык паскаля и остальные тоже - не знаю.
Offline
За ходом разработки можно следить тут: https://github.com/sannybuilder
Я к сожалению не силен в соцсетях, поэтому не привык шарить новости через твиттер или фейсбуки.
Offline
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
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
Извините Виталий, но я нашёл, то что надо раньше вас.
Заморочка жесткая конечно, это то вы правильно написали про проверку: количества пройденных миссий.
Но отчёт миссий для каждого персонажа, в чью миссию вы будите играть: свой.
Например у Свита, если брать первые миссии, это до 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
Также не понятно: зачем было хэндл обзывать: "Финальными миссиями в Лос-Сантосе", если это в действительности не так?
Может потому, что поток, к которому относится переменная $LS_FINAL_Total_Passed_Missions имеет название "LA1FIN2"? В оригинальном мейне несколько "финальных" миссий. В данном случае это относится к первому финалу заданий в Лос Сантосе ("Зелёная сабля") и название переменной вполне закономерное. Если получится достать исходник мейна от R*, то и названия переменных будут точнее, чем те, что есть сейчас.
Offline
SanyaSFM wrote:Также не понятно: зачем было хэндл обзывать: "Финальными миссиями в Лос-Сантосе", если это в действительности не так?
Может потому, что поток, к которому относится переменная $LS_FINAL_Total_Passed_Missions имеет название "LA1FIN2"? В оригинальном мейне несколько "финальных" миссий. В данном случае это относится к первому финалу заданий в Лос Сантосе ("Зелёная сабля") и название переменной вполне закономерное. Если получится достать исходник мейна от R*, то и названия переменных будут точнее, чем те, что есть сейчас.
Можно ли вобще объекты, созданные скриптом, а не через MEd, сохранять в сейве (то есть сохраняться с ними через дискету)?
И может ли сохранение с кучей объектов приводить к вылету и почему?
Offline
Можно ли вобще объекты, созданные скриптом, а не через MEd, сохранять в сейве (то есть сохраняться с ними через дискету)?
Да, если использовать глобальную переменную и ещё несколько опкодов:
$OBJ = Object.Init(#MODEL, X, Y, Z) Object.KeepInMemory($OBJ) = True Object.RemoveFromMissionCleanupList($OBJ)
В Main-е это реализовано по разному, но "RemoveFromMissionCleanupList" используется всегда.
И может ли сохранение с кучей объектов приводить к вылету и почему?
Может вылетать, если их слишком много. В моём проекте "Карьерист" я делал карту с помощью скрипта и всё сохраняло, но не так много, как хотелось.
Last edited by wmysterio (07-07-2020 12:11)
Offline
SanyaSFM wrote:Можно ли вобще объекты, созданные скриптом, а не через MEd, сохранять в сейве (то есть сохраняться с ними через дискету)?
Да, если использовать глобальную переменную и ещё несколько опкодов:
$OBJ = Object.Init(#MODEL, X, Y, Z) Object.KeepInMemory($OBJ) = True Object.RemoveFromMissionCleanupList($OBJ)В Main-е это реализовано по разному, но "RemoveFromMissionCleanupList" используется всегда.
SanyaSFM wrote:И может ли сохранение с кучей объектов приводить к вылету и почему?
Может вылетать, если их слишком много. В моём проекте "Карьерист" я делал карту с помощью скрипта и всё сохраняло, но не так много, как хотелось.
А можно как-то запретить сохранение объекта в сейв, чтобы он не сохранялся в него?
Так как я всё равно в ini их сохраняю и по сути сохранение в сейв особо то и не требуется.
Offline
Вышла новая версия, а толку: 0.
Того, чего я просил так и не сделали.
Прождал за зря только обновления этого, столько месяцев.
И потом.
Как вот это понимать вобще: "добавлена возможность объявлять локальные переменные с собственными именами".
А раньше нельзя было типа, через const end?
Если я бы понимал бы побольше в программировании и разумеется был бы исходный код, сам бы вправил бы 100, то что мне нужно.
Я итак уже кой какие файлы под себя настроил: classes.db, constants.txt и keywords.ini.
Что неужели было трудно добавить эту функцию подсветки констант с возможностью изменить цвет подсветки каждому под себя?
Offline
Вышла новая версия, а толку: 0.
Того, чего я просил так и не сделали.
Прождал за зря только обновления этого, столько месяцев.
И потом.
Как вот это понимать вобще: "добавлена возможность объявлять локальные переменные с собственными именами".
А раньше нельзя было типа, через const end?
Если я бы понимал бы побольше в программировании и разумеется был бы исходный код, сам бы вправил бы 100, то что мне нужно.
Я итак уже кой какие файлы под себя настроил: classes.db, constants.txt и keywords.ini.
Что неужели было трудно добавить эту функцию подсветки констант с возможностью изменить цвет подсветки каждому под себя?
Весь мир не будет плясать под твою дудку. Выполнено то, что было запланировано в план-релизе, и там не было даже намёка на реализацию подсветки. Неужели так трудно было посмотреть план, чтобы сейчас не седеть в негодовании?
Offline
SanyaSFM wrote:Вышла новая версия, а толку: 0.
Того, чего я просил так и не сделали.
Прождал за зря только обновления этого, столько месяцев.
И потом.
Как вот это понимать вобще: "добавлена возможность объявлять локальные переменные с собственными именами".
А раньше нельзя было типа, через const end?
Если я бы понимал бы побольше в программировании и разумеется был бы исходный код, сам бы вправил бы 100, то что мне нужно.
Я итак уже кой какие файлы под себя настроил: classes.db, constants.txt и keywords.ini.
Что неужели было трудно добавить эту функцию подсветки констант с возможностью изменить цвет подсветки каждому под себя?Весь мир не будет плясать под твою дудку. Выполнено то, что было запланировано в план-релизе, и там не было даже намёка на реализацию подсветки. Неужели так трудно было посмотреть план, чтобы сейчас не седеть в негодовании?
Если мне не изменяет моя память, то не знаю, в каком там плане у него, что было в этом письменном или только у него в голове, но он сам с самого начала писал, что это было в его плане как раз таки.
Однако реализовать он решил всё из этого плана, о котором я впервые вобще слышу, да он до этого давал ссылку, но новости никак там не продвигались на том сайте.
И почему это под мою, ты же сам сказал, что этого ждут многие, а теперь заднюю здаёшь, нехорошо, перечитай ка ещё раз свои посты.
Ну а вот теперь я реально понимаю, что это только мне и надо было, всех вероятно устраивает всё так как есть.
Ах да сохранять объекты по нормальному без вылетов - нельзя, очевидно сейв игры для таких данных просто не предназначен.
Поэтому твоя эта: $OBJ - вобще ничего не даст и остальные несколько команд тоже.
Поэтому не надо тут корчить из себя не знай кого, мне в 2010-ом на форуме dim1988 хватило таких: "умных" как ты.
Тоже также лезли не в своё дело, а баны именно я получал, а не провокаторы.
Offline
Как вот это понимать вобще: "добавлена возможность объявлять локальные переменные с собственными именами".
А раньше нельзя было типа, через const end?
можно было и раньше. теперь стало немного удобнее. можно почитать вот тут: https://github.com/sannybuilder/dev/issues/32
Что неужели было трудно добавить эту функцию подсветки констант с возможностью изменить цвет подсветки каждому под себя?
для начала нужно научить IDE понимать, что конкретно взятое слово является объявленной константой. Для этого необходимо распарсить вышестоящий код и найти все объявления констант. Пока это умеет делать только компилятор, и нужно эту часть функционала из него вытащить. Так же нужно учитывать, что пользователь может в любой момент удалить объявление константы или изменить его, соответственно подсветка должна отреагировать. При этом все это не должно занимать много ресурсов и завешивать программу. Это не очень простая задача. Скажем так, соотношение труда/пользы здесь больше в сторону труда. Я по возможности буду стараться это сделать, но прошу проявить терпение.
https://github.com/sannybuilder/dev/issues/28
Offline
SanyaSFM wrote:Как вот это понимать вобще: "добавлена возможность объявлять локальные переменные с собственными именами".
А раньше нельзя было типа, через const end?можно было и раньше. теперь стало немного удобнее. можно почитать вот тут: https://github.com/sannybuilder/dev/issues/32
Что неужели было трудно добавить эту функцию подсветки констант с возможностью изменить цвет подсветки каждому под себя?
для начала нужно научить IDE понимать, что конкретно взятое слово является объявленной константой. Для этого необходимо распарсить вышестоящий код и найти все объявления констант. Пока это умеет делать только компилятор, и нужно эту часть функционала из него вытащить. Так же нужно учитывать, что пользователь может в любой момент удалить объявление константы или изменить его, соответственно подсветка должна отреагировать. При этом все это не должно занимать много ресурсов и завешивать программу. Это не очень простая задача. Скажем так, соотношение труда/пользы здесь больше в сторону труда. Я по возможности буду стараться это сделать, но прошу проявить терпение.
https://github.com/sannybuilder/dev/issues/28
Значит это трудная задача.
Вроде как в самом дельфи, константы подсвечиваются тем цветом, что они означают (точно помнить не могу, сто лет в дельфи не баловался уже).
Ну вот впринципе я на такой ответ и расчитывал.
Спасибо за ссылки, постараюсь чаще за новостями следить.
А то начал тут этот: "под мою дудку пляшут".
Кто?
Когда и где интересно плясал под неё?
Чтобы плясали, это надо чтобы для меня любимого: кто, что-то делал, а я как неблагодарная сволочь, всё это не ценил и не уважал и просил всё больше и больше.
Это ещё наоборот я получается плясал раньше, когда будучи совсем молоденьким скрипты только начинал писать и читая комменты к своим работам: чуть ли не все мысли и желания в последующих версиях скрипта: исполнял.
В общем я никого не тороплю и не принуждаю, но желательно было бы это добавить.
Ещё раз спасибо за подробное разъяснение по этой теме.
А IDE, да мне известен как список объектов в мапинге и всё, в программе это разумеется, что-то другое.
Offline
что это было в его плане как раз таки.
Он не обещал. Просто сказал, что это было в списке идей. Что Вы выдумали у себе там в голове я не знаю.
о котором я впервые вобще слышу
Он Вам же и дал ссылку на этот сайт и сказал, что все новости о ходе разработки смотреть там. Перечитайте сначала свои посты и ответы к ним, а потом уже советуйте это делать другим.
И почему это под мою
Дружище, очнись! Это прямой ответ на Ваше "я просил", "Если я", "Я итак". Слишком много "твоего я" в тексте. Прям обязаны всё сделать для Вас по первому запросу. Когда будет, тогда будет. Не обвиняйте гневными комментариями, и Вам не будут такими же комментариями отвечать. Надеюсь, доходчиво объяснил смысл моих претензий.
Поэтому не надо тут корчить из себя не знай кого
Вообще-то, этот "не знай кого" один из немногих, кто вообще пытался разобраться в Ваших вопросах здесь. Если сказано, что тем кодом можно сохранить объекты, значит оно так и есть. Откройте main.scm и смотрите сколько угодно примеров. Если игра вылетает, то это исключительно из за Вашего кода. Вы бы могли просто показать его и уже вместе искали ошибки, но Вы предпочли обозвать меня тупым провокатором.
Last edited by wmysterio (08-08-2020 22:13)
Offline
Он Вам же и дал ссылку на этот сайт и сказал, что все новости о ходе разработки смотреть там. Перечитайте сначала свои посты и ответы к ним, а потом уже советуйте это делать другим.
Я её смотрел, там 100 лет ничего не обновлялось, немного ещё потом посмотрел и всё, не дежурить же мне и днями и ночами надо было.
Я то как раз таки перечитал уже, вы свои не забудьте.
Дружище, очнись! Это прямой ответ на Ваше "я просил", "Если я", "Я итак". Слишком много "твоего я" в тексте. Прям обязаны всё сделать для Вас по первому запросу. Когда будет, тогда будет. Не обвиняйте гневными комментариями, и Вам не будут такими же комментариями отвечать. Надеюсь, доходчиво объяснил смысл моих претензий.
А тебя вобще волновать это не должно, сколько много моего: "я" в тексте.
Не нравятся мои: высказывания, отзывы, критика.
То: свободен, я тебя не держу, тем более что тебя, этот пост никак вобще не касался, так как не был тебе адресован вобще в целом.
Ну ты сунуться решил, не знай зачем.
Или думал, что я эту грубятину твою проглочу как лох последний?
Не на того напал, приятель!
А свои притензии сам знаешь куда можешь деть.
Если хочешь срача, то давай, можем в лс продолжить, мне то что.
Зачем тут то?
Вообще-то, этот "не знай кого" один из немногих, кто вообще пытался разобраться в Ваших вопросах здесь. Если сказано, что тем кодом можно сохранить объекты, значит оно так и есть. Откройте main.scm и смотрите сколько угодно примеров. Если игра вылетает, то это исключительно из за Вашего кода. Вы бы могли просто показать его и уже вместе искали ошибки, но Вы предпочли обозвать меня тупым провокатором
А я и не просил особо то.
Странная манера разговаривать у тебя, то сначала: выкаешь, то зачем: тыкаешь, потом снова: выкаешь.
Ты уж определись: уважительно ты хочешь общаться с человеком или нет.
Ну дак конечно, от вылета из-за сохранения свыше 20 объектов в сейв - не один оппкод не спасёт - проверенно.
Код в полном порядке - иначе бы вылетало бы.
Тупым никто тебя или вас: не называл.
Просто, иногда бывает, очень это редко мне нужна маленькая помощь от других людей, а когда я прихожу на форумы, то сразу начинается: попытки поставить за таких как я себя повыше, всячески высмеивая человека.
Такое поведение я лично считаю отвратительным по отношению к людям, которые в какой-то векий раз обратились за помощью.
И разумеется не при каких обстоятельствах, даже если мне будет грозить: великий и ужасный: бан, я не спущу это за так не одному: "человеку".
Так что поаккуратней в выражениях.
Offline
Тупым никто тебя или вас: не называл.
Есть сильные сомнения в этом, учитывая Ваше сравнения меня с "умными" людьми на неком форуме.
Просто, иногда бывает, очень это редко мне нужна маленькая помощь от других людей, а когда я прихожу на форумы, то сразу начинается: попытки поставить за таких как я себя повыше, всячески высмеивая человека.
Ну и в чём именно мой пример кода с функцией, ответы с количеством строк в панели не понравились? Неужели я там умудрился высмеять Вас? Показал себя повыше? Какое такое поведение Вы ожидаете, когда обратились за помощью? Я сказал ровно то, что сказал бы любой другой скриптер, который с этим сталкивался.
Или думал, что я эту грубятину твою
Очень жаль, что Вы восприняли мои ответы как грубятину.
Offline