#1 Re: Вопросы по скриптингу » Туман войны » 11-09-2022 12:38

for 0@ = 354164 to 354188
    &0(0@,1i) = 16843009
end

#2 Re: Вопросы по скриптингу » Вывод текста из локальной переменной. » 02-11-2021 00:13

Я же тебе уже говорил: проверить настройки SB. Форматирование текста должно быть установлено на "Как есть" или "нижний", чтобы "%d" компилировался в правильном формате.

#3 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 09-08-2020 13:11

SanyaSFM wrote:

Вы высмеяли: про дудку написав.

Ну, Вы говорили о том, что просите помощи и Вас высмеивают, вот и подумал, что дело в скриптах smile  Если для Вас мои посты оказались слишком неприятными, то хотел бы попросить прощения. Мне тоже можно было написать свои мысли по-другому, но получилось то, что получилось. Понятно, что мы останимься при своих мнениях и будем отстаивать их до конца, но я предложу "мировую". Надеюсь, что это станет умным решением.

SanyaSFM wrote:

Ожидаю простого ответа: "Да" (могу помочь), "Нет" (не могу помочь), "Не знаю" (сомневаюсь, что помогу вам), или "Тишину", другого вроде не дано было.

Сомневаюсь, что помогу, но могу подкинуть идею для реализации. В MAIN.SCM и CLEO есть ограничения на количество сохраняемых объектов, поэтому нужно использовать то, что их не имеет или ограничений значительно меньше. Это — IPL-файл. Он не зависит от сейва вообще и имеет относительно простую структуру. Как раз в этот файл мы можем записать созданные объекты. Единственное "но", с которым у меня как раз и есть сомнения, так это редактирование таких файлов. Удаление и изменение объектов надо как-то реализовать, а таких инструментов в скриптинге практически нет. Надо делать свои костыли. Плюс появляться объекты будут после перезапуска игры и надо ещё разобраться как статические объекты удалить/скрыть с карты, если редактируемый объект был изменён.

#4 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 09-08-2020 00:30

SanyaSFM wrote:

Тупым никто тебя или вас: не называл.

Есть сильные сомнения в этом, учитывая Ваше сравнения меня с "умными" людьми на неком форуме.

SanyaSFM wrote:

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

Ну и в чём именно мой пример кода с функцией, ответы с количеством строк в панели не понравились? Неужели я там умудрился высмеять Вас? Показал себя повыше? Какое такое поведение Вы ожидаете, когда обратились за помощью? Я сказал ровно то, что сказал бы любой другой скриптер, который с этим сталкивался.

SanyaSFM wrote:

Или думал, что я эту грубятину твою

Очень жаль, что Вы восприняли мои ответы как грубятину.

#5 Re: Sanny Builder и CLEO » Sanny Builder v3.xx » 08-08-2020 21:21

Seemann wrote:

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

Давай так: я переустановлю ОС и посмотрю результат. Если проблема осталась, то напишу подробно что я делал. Я уверен, что проблема в системе, но может быть, действительно баг, но не факт, что в СБ.

Seemann wrote:

документация, конечно, нужна!

Хорошо, тогда кидаю архив в сообщения.

#6 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 08-08-2020 21:08

SanyaSFM wrote:

что это было в его плане как раз таки.

Он не обещал. Просто сказал, что это было в списке идей. Что Вы выдумали у себе там в голове я не знаю.

SanyaSFM wrote:

о котором я впервые вобще слышу

Он Вам же и дал ссылку на этот сайт и сказал, что все новости о ходе разработки смотреть там. Перечитайте сначала свои посты и ответы к ним, а потом уже советуйте это делать другим.

SanyaSFM wrote:

И почему это под мою

Дружище, очнись! Это прямой ответ на Ваше "я просил", "Если я", "Я итак". Слишком много "твоего я" в тексте. Прям обязаны всё сделать для Вас по первому запросу. Когда будет, тогда будет. Не обвиняйте гневными комментариями, и Вам не будут такими же комментариями отвечать. Надеюсь, доходчиво объяснил смысл моих претензий.

SanyaSFM wrote:

Поэтому не надо тут корчить из себя не знай кого

Вообще-то, этот "не знай кого" один из немногих, кто вообще пытался разобраться в Ваших вопросах здесь. Если сказано, что тем кодом можно сохранить объекты, значит оно так и есть. Откройте main.scm и смотрите сколько угодно примеров. Если игра вылетает, то это исключительно из за Вашего кода. Вы бы могли просто показать его и уже вместе искали ошибки, но Вы предпочли обозвать меня тупым провокатором.

#7 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 08-08-2020 17:42

SanyaSFM wrote:

Вышла новая версия, а толку: 0.
Того, чего я просил так и не сделали.
Прождал за зря только обновления этого, столько месяцев.
И потом.
Как вот это понимать вобще: "добавлена возможность объявлять локальные переменные с собственными именами".
А раньше нельзя было типа, через const end?
Если я бы понимал бы побольше в программировании и разумеется был бы исходный код, сам бы вправил бы 100, то что мне нужно.
Я итак уже кой какие файлы под себя настроил: classes.db, constants.txt и keywords.ini.
Что неужели было трудно добавить эту функцию подсветки констант с возможностью изменить цвет подсветки каждому под себя?

Весь мир не будет плясать под твою дудку. Выполнено то, что было запланировано в план-релизе, и там не было даже намёка на реализацию подсветки. Неужели так трудно было посмотреть план, чтобы сейчас не седеть в негодовании?

#8 Re: Sanny Builder и CLEO » Sanny Builder v3.xx » 08-08-2020 08:38

Seemann wrote:

можешь уточнить сценарий?

Скорее всего проблема в мой ОС. После активации меню "Новый Cleo-скрипт", сразу пошло всё "не так". Функции пропали и вообще компилятор начал работать как плуг. Потом вообще взбесилась мышка и не реагировала на клики по любым окнам. Я бы не стал на этом останавливаться, если такое не происходило каждый раз. С глюками я могу смириться, главное, чтобы работало. А вот нововведение как раз не работало. Если в других всё нормально, то это, очевидно, моя ОС виновата. Решил с этим поделиться, может это баг.

Для документации нужны иконки радара GTA 3? Я уже всё подготовил и написал *.md-файл. Осталось только узнать нужны ли они.

#9 Re: Sanny Builder и CLEO » Sanny Builder v3.xx » 05-08-2020 13:38

Поздравляю с днюхой, Санни!!!

Приветствуются исправления и дополнения

Посмотрю что можно добавить. Скину свои варианты.

label()

CTRL+SPACE не видит нужные функции, хоть и подсвечивает их. Пока пытаюсь извращаться так:

@label() // потом удаляю @

В CLEO хорошо смотрится.

Будем осваивать GTA HD?

Компиляция/декомпиляция основного сценария и новый CLEO для IV и V в SB? Или расширять то, что имеется на других ЯП?

#10 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 07-07-2020 12:10

SanyaSFM wrote:

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

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

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

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

SanyaSFM wrote:

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

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

#11 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 06-07-2020 13:21

SanyaSFM wrote:

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

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

#12 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 15-06-2020 20:30

SanyaSFM wrote:

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

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

#13 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 12-06-2020 20:15

SanyaSFM wrote:

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

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

#14 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 12-06-2020 19:49

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

Результат:
image.png

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

#15 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 12-06-2020 12:18

SanyaSFM wrote:

wmysterio хотел?

Мне без разницы. Я имею собственный псевдокомпилятор и мне им проще пользоваться при разработке сложных скриптов. Использую SB для компиляции и некоторыми его встроенными возможностями, которые я не в состоянии разработать самостоятельно. Подсветке констант будут рады многие. И новой справке тоже (будет время, скину материалы на одобрение).

SanyaSFM wrote:

Нельзя ли проверить вот так угол:
0@ == 170.0 to 180.0?

А что значит "to"? Если надо от угла 170 до угла 180, то пример я уже скинул, просто числа смените на нужные.

#16 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 03-06-2020 23:06

SanyaSFM wrote:

Не работает почему-то проверка угла актёра.
Допустим, я точно установил угол 180.0 Сиджею, ну например через встроненую программу в SB - Редактор координат.
Начинаю проверять типа: записанный в переменную 0@ угол актёра == 180.0 (0@ == 180.0) и проверка не срабатывает.
Проверял даже через запись в ini, угол точно: 180.0, а дальнейшие действия после проверки не срабатывают.
Зато хорошо срабатывают, если указать в проверке, что-то типа этого 0@ <= 180.0.

Я конечно понимаю, что угол не может быть ровно 180.0, когда Сиджей в движении, но в том то всё и дело: Сиджей не двигается и я ему устанавливаю точно заданный угол.

Проверять дробное число на равенство в любом движке плохая идея. Такую точность можно достичь только если сравнивать константы между собой. То, что оно пишет 180.0 не значит, что оно строгое. Оно запросто может установить 180.000001 через анимацию, физику, а в файл записать округленное число. Тут или угол в целое число конвертируйте и затем сравнивайте с целым, или проверяйте диапазон

if and
0@ >= 179.9999
0@ <= 180.9999
then
// ...
end

#17 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 23-05-2020 17:23

SanyaSFM wrote:

Не делали потому что, думаю мало кто пользовался константами, если посмотреть большинство скриптов, как миниус с 2009-2014 годы, скриптеры словно клали на них.

Тогда, скорее всего, скрипты не сохранялись в исходном виде. Из за этого может сложиться впечатление, что ими не пользовались. Если брать исходники скриптов тех времён, то много из них использовали константы. По крайней мере опытные так делали.

SanyaSFM wrote:

Нет её увидеть то можно, но если бы подсвечивалось, было бы виднее сразу.

Так я не против подсветки ) Если Seemann её сделает, то я только за (неважно каким способом). Меня интересовали отдельные моменты, которые могут мешать распознаванию константы от чего-то другого.

#18 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 22-05-2020 18:13

SanyaSFM wrote:

когда важен факт подсвечивания?

Если бы оно было так важно, это сделали бы ещё в самых старых версиях. Спустя 10+ лет внезапно подсвечивать константы стало важным фактом  grin

SanyaSFM wrote:

не знаю как можно спутать константу с глобальной переменной.

Не знаю как можно не увидеть константу в верхнем регистре в текста. Всё-таки отдельный цвет лучше.

SanyaSFM wrote:

Типа хочешь, будут подсвечиваться, хочешь нет, наверное можно указать будет и как: одним цветом или же цвет будет устанавливать в зависимости от того, что константа означает.

Да, от такого не отказался бы  smile

Seemann wrote:

Player - синим, Money - зеленым PlayerMoney

Для самых закалённых скриптеров ))

#19 Re: Sanny Builder и CLEO » Вопросы и предложения по Sanny Builder » 21-05-2020 13:19

SanyaSFM wrote:

лучше бы были: описаны все коды клавиш, как для оппкода: 0AB0, так и для: 00E1, чтобы в справку по 100 раз не лезть.

Та ну. Пусть будет как есть или добавить комментарий вроде "// you must use this global variables $PLAYER_CHAR, $PLAYER_ACTOR, $PLAYER_GROUP, $ONMISSION only". При создании нового скрипта при CTRL+SPACE нет этих переменных в стиске и приходится сначала их набирать, а с комментариями - есть. От этого будет больше пользы, чем от 100+ строк лишнего кода.

SanyaSFM wrote:

Из-за этого неудобства я и не так часто пользуюсь константами, а ведь штука это полезная.

Никто не мешает писать константы в верхнем регистре, тогда их легче отличить от описания опкода.

Seemann wrote:

подсвечивать константы тем же цветом что и их значение (число или переменная)

А почему не одним, который отличается от других? Есть опасение, что константу "ACTOR = 0@" можно спутать с переменной $ACTOR, допустим, в более крупных проектах, чем мелкий CLEO-скрипт. А каким цветом будет подсвечена константа (взял со справки) "PlayerMoney = $PLAYER_CHAR.Money"?

#20 Re: Вопросы по скриптингу » Как портировать C# скрипт под Cleo? » 05-04-2020 13:38

Krackeen_777 wrote:

C# лучше портировать в .asi плагин

Там что сплошная математика? Разные C#-фишки вряд ли удастся нормально портировать в .asi, не говоря уже о SCM.

Krackeen_777 wrote:

Если надо, то я могу скинуть этот скрипт!

Да, было бы неплохо глянуть что он из себя представляет и стоит ли играться с ним.

#21 Вопросы по скриптингу » Патроны в пикапе при подборе » 09-03-2020 18:36

wmysterio
Replies: 2

Привет, форум. Вот и моя очередь задать вопрос по скриптингу ) В общем, суть такова, что я хочу изменить количество патронов в пикапе, которые создаются при смерти актёров. Собственно, изменить то я изменил, но клавиша TAB при смене оружия в слоте начинает бесится и даёт либо стандартное количество патронов, либо пикап не исчезает и даёт бесконечное количество патронов (по новому количеству патронов примерно за 250 ms). Сам скрипт:

{$CLEO}   
if
0AA9:   is_game_version_original
jf @end_script

// вспомогательный мусор: начало
Model.Load(#SAWNOFF)
038B: load_requested_models

0376: 0@ = create_random_actor_at 2484.2766 -1672.1981 13.3359
01B2: give_actor 0@ weapon 26 ammo 100
0A27: set_actor 0@ death_pickups_persist 1
Model.Destroy(#SAWNOFF)
// вспомогательный мусор: конец


while true
wait 0 // 250

    for 0@ = 0 to 620        
        0A90: 1@ = 0@ * 32          // int [INDEX IN POOL] 
        0A8E: 1@ = 0x9788C0 + 1@    // int [ADDRESS IN POOL]  

        0A8E: 2@ = 1@ + 4           // int [OBJECT HANDLE]
        0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0  

        if
        2@ == 0                     // <if object not exist>
        then
        continue
        end   

        0A8E: 2@ = 1@ + 28          // int [TYPE]
        0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0

        if
        not 2@ == 4                 // <if type is not deadman pickup>
        then
        continue
        end    
     
        0A8E: 2@ = 1@ + 24          // int [MODEL ID]
        0A8D: 2@ = read_memory 2@ size 2 virtual_protect 0  
        4@ = 0                      // <NEW COUNT>   
        if
        2@ == #SAWNOFF // 350
        then                  
        4@ = 2  
        end  
        if
        2@ == #CHROMEGUN // 349
        then                  
        4@ = 3  
        end
        if or
        2@ == #DESERT_EAGLE // 348
        2@ == #SHOTGSPA// 351
        2@ == #SNIPER// 358
        then                  
        4@ = 4  
        end    
        if
        2@ == #CUNTGUN // 357
        then                  
        4@ = 6  
        end
        if or
        2@ == #COLT45 // 346
        2@ == #SILENCED// 347
        then                  
        4@ = 11
        end        
        if
        2@ == #MP5LNG // 353
        then                  
        4@ = 14    
        end     
        if
        2@ == #MICRO_UZI // 352
        then                  
        4@ = 21    
        end
        if
        2@ == #M4 // 356
        then                  
        4@ = 22   
        end  
        if
        2@ == #TEC9 // 372
        then                  
        4@ = 33    
        end 
        if
        2@ == #AK47 // 355
        then                  
        4@ = 41     
        end      
        0A8E: 3@ = 1@ + 8           // int [COUNT]      
        //0A8D: 2@ = read_memory 3@ size 4 virtual_protect 0  
        //if
        //003B:   2@ == 4@  // (int)
        //then
        //continue
        //end 
        0A8C: write_memory 3@ size 4 value 4@ virtual_protect 0
    end    
end

:end_script
0ACE: show_formatted_text_box "GAME VERSION IS NOT ORIGINAL"
0A93: end_custom_thread

Откуда берёт игра количество новых патронов при смене оружия в слоте?

#22 Re: Вопросы по скриптингу » Как создать свой .scm скрипт? » 11-11-2019 11:43

Krackeen_777 wrote:

Помогите, пожалуйста, кто знает, как это сделать!

Либо MAIN.SCM, либо CLEO-скрипты. Определись что конкретно ты пытаешься сделать. В MAIN никаих CLEO-скриптов ты не добавишь. Их надо будет переписать специально под MAIN: заменить некоторые опкоды, директивы удалить и писать стартер для скрипта.

#23 Re: Sanny Builder и CLEO » [Sanny Builder] БЕСПЛАТНЫЙ КОД (OPEN SOURCE) » 24-10-2019 21:05

MatiDragon wrote:

"Почему они не делают Sanny Builder открытым исходным кодом?"

Может чтобы не было всякой блевотной херни, как с Linux?

И "бесплатный код" — НЕ РАВНО "open source".

#24 Re: Sanny Builder и CLEO » Sanny Builder v3.xx » 21-10-2019 09:25

Seemann wrote:

Спасибо за детальные репорты , пофикшено.

Спасибо за оперативность wink

Seemann wrote:

Если еще что-то обнаружишь, пиши.

Хорошо.

#25 Re: Sanny Builder и CLEO » Sanny Builder v3.xx » 20-10-2019 18:59

Seemann, загляни в баг-трекер, некоторые опкоды неправильно компилируется.

***

Нашел ещё один баг... На этот раз пострадали внешние скрипты. Добавил рапорт в баг-трекер.

Board footer

Powered by FluxBB