Перейти к содержанию

Обсуждение и публикация Cleo-скриптов


Рекомендуемые сообщения

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

Согласен.Но лучше бы в файловый архив сразу да с хорошим описанием.

Изменено пользователем Racer

Мой форум http://bosikom.mybb.ru

Ссылка на комментарий
Поделиться на другие сайты

Парни, вопрос к профи скриптописания). Есть модель самолёта. К ней шел странный скрипт с непонятным файлом. Сам скрипт я открыл, мне нужен свой id для работы со скриптом, а там прописан шамал именем. При попытке сменить имя на id  при компиляции выходит ошибка. Вопрос как указать скрипту на другой ид модели? Если что, то скрипт прикреплю. Заранее спасибо.

скрипт.rar

Ссылка на комментарий
Поделиться на другие сайты

Не важно написано ли #SHAMAL или 519. Название меняется на ID нажатием клавиш Ctrl+Alt+H  при нахождении курсора на названии (обратно также). Ошибка из-за другого. Замени все вхождения

 586_T-

 на 

586_T_

 кроме строчки

 0A92: create_custom_thread "586_T-4.586" 26@ 0
Ссылка на комментарий
Поделиться на другие сайты

Скрипт заработал, ура! Хочу ещё спросить. Есть Car spawner 2.1 by fastman92, так в ридми написано, что в него можно прописывать добавленный транспорт:

 

• There may be more ranges than range_1 with start and end. You can add range_2, range_3, range_4 and much more...
  Number of ranges is automatically calculated.
 
Но если я ставлю внизу под 
 
[range_1]
start = 400
end = 611
 
блок
 
[range_2]
start = 612
end = 15069
 
то игра вылетает. при загрузке...
Не могу понять, что не так-то?
Ссылка на комментарий
Поделиться на другие сайты

можно прописывать добавленный транспорт

start = 612
end = 15069

У тебя, что весь этот диапазон занимают модели добавленного транспорта? Ясно, что нет. Так пропиши те ID (диапазон ID), на котором у тебя реально установлены дополнительные модели транспорта.

Ссылка на комментарий
Поделиться на другие сайты

Кто-нибудь в курсе, есть ли скрипт или что-то типа того, чтоб сохранять много машин в одном месте (большой гараж\парковка) ? интересует для VC \ SA

Ссылка на комментарий
Поделиться на другие сайты

В общем собрал конструкцию из двух скриптов и десятка мануалов: https://yadi.sk/i/tQVEh77v3RLRm8, сохраняет авто с тюнинхом и т.д., но возникла пара вопросов, ответы на которые не нашел:

 

1) в строке 0AB4: 17@ = var 959  сохраняется радио-станция, но если стояла mp3, то когда сажусь в машину радио выключается. Остальные станции нормально работают. Пробовал костыль типа:

[spoiler=костыль]:CARSTOR_405
if
17@ == 11
jf @CARSTOR_406
041E: set_radio_station 11
jump @CARSTOR_738

:CARSTOR_406
041E: set_radio_station 17@
jump @CARSTOR_738

 

 

но не работает  :sad: , хотя станция сохраняется правильно.

 

2) Надо ли добавлять строки типа 06EB: release_car_component 18@, и если надо, куда их добавлять. 

 

3) Где взять больше переменных, если написать так:

[spoiler=спойлер]:CARSTOR_637
wait 0
if
not 32@ == -1
jf @CARSTOR_638
06E9: load_car_component 32@
jump @CARSTOR_638

 

игра вылетает после спавна машины, а Sanny Builder говорит, что больше 33-х потоков не моги.

 

4) В скрипте, который я взял за основу есть строки:

 [spoiler=спойлер]0093: 3@ = integer 3@ to_float

0092: 13@ = float 3@ to_integer
0AB3: var 951 = 13@

 

Кто знает зачем они, в гугле меня забанили кажись. 

Изменено пользователем svyatogor2007
Ссылка на комментарий
Поделиться на другие сайты

Я, конечно, не настоящий сварщик не программист, но "костыль" у тебя странноватый. Ты проверяешь, равна ли переменная 17@ одиннадцати, и если не равна, назначаешь радиостанцию из переменной 17@, хотя хочешь назначить одиннадцатую... :wacko2:

 

Не буду строить предположений относительно необходимости и разумности "костыля", но, может быть, логичнее было бы так:

[spoiler=]

:CARSTOR_405
if
17@ == 11
jf @CARSTOR_406
jump @CARSTOR_738

:CARSTOR_406
041E: set_radio_station 11
jump @CARSTOR_738

 

 

Или еще проще:

 

[spoiler=]

:CARSTOR_405
if
17@ == 11
jf 041E: set_radio_station 11

jump @CARSTOR_738

 

 

 

Сугубое ИМХО. :smile:

 

Ссылка на комментарий
Поделиться на другие сайты

Я, конечно, не настоящий сварщик не программист, но "костыль" у тебя странноватый. 

 

Сугубое ИМХО. :smile:

 

Так вся суть в том, что мне не надо, что бы постоянно назначалась 11 станция. Я же говорю, 041E: set_radio_station 17@ срабатывает нормально всегда, кроме случая, если 17@ будет 11 станцией. Да и в любом случае, 041E: set_radio_station 11 не работает, назначает 12 станцию.

Ссылка на комментарий
Поделиться на другие сайты

2) Надо ли добавлять строки типа 06EB: release_car_component 18@, и если надо, куда их добавлять.

Это опкод удаления из памяти модели детали тюнинга. Опкод ставится после установки детали на авто. По работе с компонентами авто читай здесь.

 

3) Где взять больше переменных, если написать так:

Переменные 32 и 33 - это таймеры, в них нельзя записывать значения для последующего использования, поскольку после очередного wait в переменной будет уже другое значение. Можно использовать в редких случаях и под запись, но надо записать в неё другое значение и использовать это значение до команды wait. Т.е. эти переменные можно использовать, как вспомогательные или непосредственно, как таймеры.

Для сохранения большего количества данных надо использовать "буфер памяти". В ячейку памяти (буфера) записывается нужное значение, в нужное время значение считывается из нужной ячейки в переменную, используется, потом из другой ячейки и т.д. 

 

 

0093: 3@ = integer 3@ to_float

0092: 13@ = float 3@ to_integer

0AB3: var 951 = 13@

 Опкод 0093 переводит значение переменной int во float

Опкод 0092 переводит значение переменной float в int

Опкод 0AB3 записывает значение локальной переменной (или константы) в глобальную переменную

 

Про локальные и глобальные переменные при написании скриптов можно почитать в справке программы SB

 

 

По радиостанции надо смотреть в exe. Скорее всего там в соответствующей функции так сделано, чтобы переключалось на следующую радиостанцию.

Ссылка на комментарий
Поделиться на другие сайты

 

 Спасибо, буду копать дальше. К слову сказать, если машину в гараже оставлять, радио остается, попробую еще в майне поискать, может что дельное получится.

Еще вопрос, если где талмуд по всем опкодам? В справке к билдеру мизер, в интернете в основном примеры конкретных скриптов. Не обязательно на русском.

Ссылка на комментарий
Поделиться на другие сайты

Это в опкоде так "задумано", чтобы переключалось на следующую радиостанцию:

case 0x41E:
      CRunningScript::CollectParameters(this, 1u);
      radioId = ScriptParams[0];
      if ( ScriptParams[0] == -1 )
        return 0;
      if ( ScriptParams[0] == 11 )
      {
        radioId = 12;
        ScriptParams[0] = 12;
      }
      LOBYTE(radioId) = radioId + 1;
      CAudioEngine::RetuneRadio(radioId);
      return 0;

К слову сказать, если машину в гараже оставлять, радио остается

А там не используется опкод, а записывается значение напрямую в структуру авто по нужному смещению:

vehicle->m_vehicleAudio.m_settings.m_bRadioNum = storedCar->m_nRadiostation;

если где талмуд по всем опкодам?

В самих опкодах есть их описание, т.е. что делает этот опкод. Например, в приведённом выше опкоде 0093 integer to float. Правда не во всех оно верное, а в некоторых нет вообще. В plugin-sdk есть полное описание опкодов.

Ссылка на комментарий
Поделиться на другие сайты

 

Про локальные и глобальные переменные при написании скриптов можно почитать в справке программы SB

 

 

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

0AB4: 18@ = var 960

06E9: load_car_component 18@

написать сразу:

06E9: load_car_component var 960 .

 

Решил полностью с нуля все переписать, сделать свой продукт в общем, прикинул, если брать конструкцию типа:

[spoiler=спойлер]

0AB3: var 960 = 18@

096D: get_car 2@ component_on_slot 0 model_to 18@ 

0AB3: var 961 = 18@

096D: get_car 2@ component_on_slot 1 model_to 18@ 

--//--

0AB4: 18@ = var 960 

06E9: load_car_component 18@ 

0AB4: 18@ = var 961

06E9: load_car_component 18@  

 

 

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

ЗЫ. Хыы, пока сообщение писал, увидел, что у меня 0AB3: var 960 = 18@ по два раза подряд обрабатывается.. 

Изменено пользователем svyatogor2007
Ссылка на комментарий
Поделиться на другие сайты

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

если брать конструкцию типа

Да. Записывай (и считывай из) сразу в глобальную переменную. 

Например:

096D: get_car 2@ component_on_slot 0 model_to var 0 
06E9: load_car_component var 0

 и так далее. Для каждого компонента тюнинга (номера радиостанции, номера цвета авто и т.д.) своя глобальная переменная.

 

Вообще глобальные переменные не рекомендуется использовать в cleo скрипта, но в случае, когда ты делаешь скрипт только для себя и не будешь использовать другие скрипты с глобальными переменными - можно.

 

И еще в каких пределах можно использовать значения var

Цитата из справки SB

0AB3 устанавливает значение глобальной CLEO-переменной. Эти переменные могут использоваться для обмена данными между CLEO-потоками, а также между CLEO и main.scm. Общее число таких переменных равно 1000. Их значения сохраняются в CLEO-сейве. Параметры:

1 – ID глобальной переменной. Должно быть в интервале 0..999.

2 – значение глобальной переменной (любое число, целое или дробное).

Ссылка на комментарий
Поделиться на другие сайты

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

Опкод 0731: set_car 0@ y_angle_to 9@ работать отказывается, я так понимаю, это тоже дело в самом опкоде, думал добавить координату через память, второй день копаю форумы, никак не разберусь :sad:

На одном форуме написано что тип данных float смещение +0, загонял в текстовый файл, получал такое:  2.06798e-024, на координату слабо похоже, на другом наткнулся на: 0x14 (dword) - размер 64 байта. Решил попробовать подставить, игра вылетела  :facepalm: . Я уже весь мозг сломал. Через Art Money вроде нашел ячейку памяти, значения синхронно изменялись  и совпадали, но изменить не получилось, машина никак не реагирует, и само смещение вычислить не удалось. В общем буду благодарен за подсказки или ссылки, как подставить координаты в память. 

Еще по ссылке выше нашел скрипт для считывания номера автомобиля, скрипт у меня работает отлично, но опять же не получается сохранить номер в ini файл, просто абракадабра пишется. Но номер фигня, главное вычислить память для вращения авто по осям Y и X.

Ссылка на комментарий
Поделиться на другие сайты

 

 

никак не могу найти смещения для координат и углов поворота авто. 

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

Если так, то:

угол тебе нужен Z, а не X или Y

считывается так 

0174: 1@ = car 0@ Z_angle

устанавливается так

0175: set_car 0@ Z_angle_to 1@

Координаты

считываются так

00AA: store_car 0@ position_to 3@ 4@ 5@

а потом просто создаётся авто в этих координатах

00A5: 0@ = create_car #PONY at 3@ 4@ 5@

после устанавливается угол

 
 
Ссылка на комментарий
Поделиться на другие сайты

 

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

Если так, то:

угол тебе нужен Z, а не X или Y

считывается так 

 

 

 

    Не, в том то и дело. Z устанавливает вращение по вертикальной оси, с этим у меня все нормально. Но если парковать машину на склоне скажем, то у нас добавляется угол по Y, иначе при респе авто оно моськой утыкается в склон, а зад наоборот висит. Сейчас, что бы уйти от такого, при респауне машины я ее сбрасываю с небольшой высоты (как Glenshit в сельской местности, или лодки), машина оказывается в нормальном положении, но не всегда оно работает как надо, например мотоцикл может упасть. 

    Хотя уже начинаю сомневаться, что осилю все задуманное, цеплять данные сразу из var *** не получается, игра вылетает , глобальные переменные с текстовым префиксом тоже вылетают, в общем печаль беда с этими переменными :facepalm: . Пока пытаюсь разобраться с выделением памяти :rtfm: , но оно слабо помогает, надо пачкой снимать и записывать 28 параметров, да еще и где-то хранить структуру авто, иначе экстры не узнать, а потом открывать новую структуру и туда записывать цвета, иначе с покраской нужный цвет не поставится. В общем походу надо было начинать с чего-то попроще  :sorry:

Ссылка на комментарий
Поделиться на другие сайты

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

А ты учитываешь расстояние от точки нахождения игрока до точки спавна авто. Т.е. авто надо создавать только при нахождении игрока в определённом радиусе от места спавна.

 

 цеплять данные сразу из var *** не получается, игра вылетает , глобальные переменные с текстовым префиксом тоже вылетают, в общем печаль беда с этими переменными

Ну в таком случае используй несколько промежуточных локальных переменных. С глобальной записывай в локальную, как в том примере было. Освободившуюся локальную переменную можно использовать повторно. Например, считал угол авто, установил этот угол для авто. В эту же переменную можешь считывать другое значение из другой глобальной переменной, например, номер радиостанции. Установил радиостанцию на авто, можешь считывать в эту же переменную другое значение из другой глобальной переменной, например, номер первого цвета и т.д. Т.е. одну переменную можно использовать многократно, если это делать правильно.

 

и где-то хранить структуру авто, иначе экстры не узнать, а потом открывать новую структуру и туда записывать цвета, иначе с покраской нужный цвет не поставится.

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

Создавать новую структуру тоже не надо, она создаётся сама с созданием авто. Надо просто соответствующим опкодом установить нужные цвета уже созданному транспорту.

Ссылка на комментарий
Поделиться на другие сайты

А ты учитываешь расстояние от точки нахождения игрока до точки спавна авто. Т.е. авто надо создавать только при нахождении игрока в определённом радиусе от места спавна.

 

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

 

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

На данный момент тоже пришел к выводу, что определенные данные можно сразу считать (например номер экстры и id машины) еще до сохранения, а потом вычистить переменные. Если сохранения не происходит, добавится только строка на очищение id, а если сохраняется, значит считываем остальные куски и пишем.

ЗЫ. Спасибо за исходник в скрипте с экстрами, помог весьма.

Ссылка на комментарий
Поделиться на другие сайты

Да. Записывай (и считывай из) сразу в глобальную переменную.

До этого я глобальные переменные не использовал. Проверил на тестовом скрипте. Оказалось, что так делать действительно нельзя. Надо записывать и считывать через промежуточные локальные переменные используя опкоды 0AB3 и 0AB4

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

Ссылка на комментарий
Поделиться на другие сайты

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

 

Эм... Что то я не понял, получается сразу несколько параметров можно в var сохранять? Или ты имеешь ввиду сохранять кусками, типа сначала сохраняем координаты, потом через те-же переменные радио и т.д.? 

 

ЗЫ. Впрочем я так и так решил уйти от глобальных переменных, может если получится нормально выложу. На форумах нашел создание HEX буфера, вроде нормально работает, главное в смещениях не запутаться.

 

ЗЫЫ. Не подскажешь, как можно упростить конструкцию? А то я под вечер уже начал путаться во всех этих then, while...

[spoiler=Сложная конструкция]:SVRSAVE_131

if

13@ == 255

jf @SVRSAVE_132

13@ = -1

jump @SVRSAVE_132

 

:SVRSAVE_132

if

14@ == 255

jf @SVRSAVE_133

14@ = -1

jump @SVRSAVE_133

 

 

Здесь значения 13@ и 14@ могут быть разными, например 13@ == 1, 14@ == 255, 255 надо поменять на -1.

 

ЗЫЫЫ. Спасибо за помощь. Со всем остальным вроде разобрался, цвет к покраске применяется, экстры сохраняются. Кстати пока мучил скрипт, обнаружил интересную особенность: если не поставить задержку примерно 0.1с после получения структуры авто, то команда 0A8C: write_memory 8@ size 1 value 9@ virtual_protect 0 может не отработать. У меня машина спавнилась белая, пока задержку не поставил. Правда не пробовал саму покраску через структуру применять, уже боюсь ковырять, опять что нибудь отвалится. 

-----------

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

Изменено пользователем svyatogor2007
Ссылка на комментарий
Поделиться на другие сайты

Что то я не понял, получается сразу несколько параметров можно в var сохранять? Или ты имеешь ввиду сохранять кусками, типа сначала сохраняем координаты, потом через те-же переменные радио и т.д.? 

Нет, в глобальную переменную (var) ты сохраняешь одно значение. Одно же значение потом и считываешь. На каждый сохраняемый параметр (координата, угол, номер радиостанции и т.д.) своя отдельная переменная. Их аж 1000 штук. А вот промежуточные локальные переменные @ можно использовать многократно. Как я уже писал выше, допустим у тебя авто в переменной 0@. Тебе надо считать ID модели. Считываешь в промежуточную переменную 1@ ID модели, записываешь в глобальную переменную var 0. Дальше тебе надо считать координаты авто. Считываешь в переменные 1@ 2@ 3@. Записываешь в глобальные переменные var 1 var 2 var 3. Дальше надо считать угол авто. Считываешь в переменную 1@. Записываешь в глобальную переменную var 4. Дальше, например, считываешь номер радиостанции в 1@. Записываешь в var 5. И т.д. Как видишь, локальная переменная 1@ использовалась многократно. 

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

 

А то я под вечер уже начал путаться во всех этих then

if
  13@ == 255
then
    13@ = -1
end  
if
  14@ == 255
then
    14@ = -1
end   

Если условие не выполняется, то строчки в блоке then end пропускаются.

 

Про wait - если необходимо по коду ставить задержку (неважно 0 или какое другое значение), то потом прежде чем делать, что-либо с авто (актёром, объектом и т.д.), надо проверять существует ли данное авто (актёр, объект и т.д.). При команде wait в действие вступают другие скрипты, потоки main, функции exe. И может оказаться так, что этого авто (актёра и т.д.) уже нет. При попытке применить какое-либо действие к уже несуществующему авто получишь вылет игры.

 

В итоге у меня 4 цвета уместились в одну переменную, похоже буфер и правда не нужен больше. 

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

Ссылка на комментарий
Поделиться на другие сайты

 

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

 

 

Про wait - если необходимо по коду ставить задержку (неважно 0 или какое другое значение)

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

 

Изначально я на одном сайте нашел мануал, там доставание данных из структуры выглядело так:

[spoiler=спойлер]0A97: 1@ = car 0@ struct

0A8E: 2@ = 1@ + 0x458

 

0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0

 

Разумеется половина переменных улетала в никуда. Потом в твоем скрипте с экстрами (кстати еще раз спасибо за исходник) увидел, что можно сделать проще, в итоге, учитывая, что 4 цвета я беру в одну переменную, все схлопнулось в такую красоту:

[spoiler=спойрел]0A97: 9@ = car 1@ struct

9@ += 1076

0A8D: 14@ = read_memory 9@ size 4 virtual_protect 0

,

как итог, даже меньше переменных, если бы использовал команды 03F3 и 0A12.

Данные напрямую записывать приходится, иначе проблемы с четвертым цветом (не применяется) и цветом под покрасочной работой (становится белым)

Про wait учту, пока код записи поправил так:

[spoiler=спойлер]if

not 7@ == -1 // - здесь проверка, есть ли покрасочная работа

then

wait 500 // - если да, ждем пол секунды

end

0A97: 9@ = car 1@ struct

9@ += 1076

0A8C: write_memory 9@ size 4 value 14@ virtual_protect 0

wait 500 // - ждем еще пол секунды, это перед тем как позицию зафиксировать

 

 

Без покраски можно сразу в память значения цветов записывать, тогда нормально применяется. В общем спасибо за помощь, пока тестирую, но в целом работает, экстры сохраняются, цвета применяются, тюнинх имеется. Теперь остается немного обработать напильником, добавить проверки и можно будет выкладывать  :good: , глобальные переменные убрал, нашел команду 0A95: enable_thread_saving , потом посмотрю как работает, попробую через нее между сессиями данные хранить, на крайняк можно будет ini файл прикрутить, все равно данные из него по сути только при старте считывать, потом только запись.

Единственный момент в котором пока не разобрался, параметры [dword] в структуре авто, сколько байт занимает одна ячейка и как их вытащить в перевариваемом виде во внешний файл? Просто думал, раз уж я все равно читаю и записываю данные в структуре, можно было бы и весь тюнинг в несколько переменных упаковать. Например берем сразу пачку в 15 значений и кладем в буфер, затем из буфера читаем маленькими кусочками, выполняем проверку на наличие, и если есть, загружаем. Тогда можно было-бы еще каких нибудь фишек добавить, типа сигнализации.

Ссылка на комментарий
Поделиться на другие сайты

 

 

Про wait учту, пока код записи поправил так:

Не пойдёт. Раз есть wait, то надо ставить проверку

if
   056E:   car 0@ defined
then
       // здесь действия с авто
end
 
Конечно маловероятно, что с авто игрока, что-нибудь случится за этот wait, а вот при действиях с другими авто (не игрока) - эти авто игра уже может удалить за этот wait. Просто лучше сразу привыкать писать код правильно, т.е. учитывать все возможные проверки для стабильной работы скрипта.
 

 

 

Единственный момент в котором пока не разобрался, параметры [dword] в структуре авто, сколько байт занимает одна ячейка

dword - это 4 байта

word - 2 байта

ну и соответственно byte - 1 байт

 

Размер переменной 4 байта

 

Про тюнинг здесь

 

Вообще в той теме много полезной информации по работе с транспортом и его компонентами.

Ссылка на комментарий
Поделиться на другие сайты

Ну в общем первая бета версия так сказать готова, желающие могут скачать: https://yadi.sk/d/21r_TGZF3RV62T

 

Что получилось:

Сохраняются экстры, все 4 цвета, покрасочные работы, радио и тюнинг. Цвета под покрасочную работу ложатся, но иногда с небольшой задержкой, тут проблема в самой игре, не позволяет она сразу цвет подоткнуть, если покраска нанесена. На склонах машину можно без проблем парковать, правда она пару метров может прокатиться вниз, но в целом не критично.

 

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

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

 

В архиве лежит исходник, кому интересно, могут посмотреть. 

Ну и парочку скринов:

На данный момент полет нормальный, день покатал, попроходил миссии, вылеты вроде бы победил, но в общем на свой страх и риск.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...