You are not logged in.
Выложил новую версию CLEO 3.0.541. Это важное обновление и рекомендуется использовать его, особенно важно использовать эту версию вместо той, что идет в комплекте SB 3.01.
В новой версии появилась возможность использовать в скриптах опкод 03A4. Также была немного изменена структура CLEO-сейва.
Отныне в CLEO-сейве сохраняются не только потоки из файлов с расширением CS, но и вообще любые потоки, запущенные через 0A92 с флагом сохранения 0A95. Например, если после прохождения миссии вы создадите новый поток из файла NewTrigger.tr после сохранения/загрузки он продолжит работу вместе со всеми.
Старые CLEO-сейвы (sav-файлы в папке CLEO\cleo_saves) загружаться не будут.
Offline
перестают это я подхожу к синей дискете и она исчезает - + незапускается миссия такси - такое чувство что игра отрубает все внешние скрипты или ехе , чо такое незнаю у брал thread 'F4'
Offline
Написал новую примочку для GTASA.
http://cleo.sannybuilder.com/plugins/hume.rar
Плагин Hume растягивает текстуры в меню на весь экран, делая его, таким образом, более красивым. Пример нового изображения:
Кроме того, плагин позволяет менять то, какая из текстур файла models\fronten2.txd будет показываться на экране. Для этого в директории CLEO вместе с файлом hume.cleo должен лежать файл hume.ini. В нем указывается какая текстура отображается на каждом из экранов меню.
Кусок из файла hume.ini:
# ----- 0 Stats 0 # ----- 1 Game(new, load, delete) 1 # ----- 2 Brief 2
Строки, начинающиеся с # - комментарии. После комментария стоят числа (одно на каждой строке). Число обозначает номер текстуры на данном экране меню:
# textureID textureName (from models\fronten2.txd) # 0 back4.txd # 1 back3.txd # 2 back2.txd # 3 back5.txd # 4 back7.txd # 5 no texture # 6 back6.txd # 7 back8.txd
На экране меню Stats показывается текстура 0 (back4.txd), на экране новой игры - 1 (back3.txd) и т.д. Чтобы изменить текстуру в любом из меню на другую, достаточно изменить цифру после нужного комментария. Обратите внимание, что если после комментария стоит цифра 5, на данном экране не будет текстуры вообще (как в меню карты или на экране настройки клавиш управления).
Порядок следования меню в hume.ini такой же как в Alexander's SA MenuEditor.
Установка как обычно - копируем все файлы из архива в папку GTASA\CLEO. Библиотека CLEO3 должна быть установлена. Плагин работает только на версии 1.0 US.
Сами текстуры меняются любым редактором TXD файлов.
Offline
Если по каким-то причинам плагин Hume вас не устраивает, вы можете поменять текстуры путем редактирования памяти либо .exe файла. Вся информация содержится в следующей таблице:
http://sannybuilder.com/dev/menutextures.htm
Чтобы растянуть текстуры на весь экран, нужно поменять следующие адреса памяти (с VirtualProtect PAGE_READWRITE):
PSingle($0057B917)^ := 640.0; PSingle($0057B7EF)^ := 640.0; PSingle($0057B852)^ := 640.0; PSingle($0057B8A9)^ := 640.0; PSingle($0057B8BD)^ := 640.0; PSingle($0057B877)^ := 320.0; PSingle($0057B927)^ := 448.0; PSingle($0057B80B)^ := 448.0; PSingle($0057B862)^ := 448.0; PSingle($0057B88F)^ := 448.0; PSingle($0057B8D5)^ := 448.0;
Чтобы найти эти адреса в gta_sa.exe, нужно отнять число 0x400C00. Т.е. например для первой строчки нужно менять 4 байта, начиная с 0x17AD17 (0057B917 - 400C00) или 1551639. В exe по указанному смещению записано число с плавающей точкой 300.0, нужно изменить его на 640.0 и т.д.
Offline
Offline
Эмм.. скачал я Клео за нумером 3.0.646, а при загрузке игры она(игра) виснет. Просто черный экран и всё. Ничего больше. Поставил более ранюю версию Клео - и всё заработало.
З.Ы. Извеняюсь, если не в ту тему.
Offline
2flashTrash:
Виснет при запуске ехе или начале новой игры (загрузке сейва)? Какие стоят плагины/скрипты?
Версия игры?
Offline
2Seemann.
при загрузке сэйва, когда всё уже загружено и экран гаснет, как обычно, чтоб потом показать название местности и включиться, - тогда и происходит зависание. ctrl+alt+del.
версия - 1.0 US, плагины - scm log, скриптики CLEO мелкие. С предыдущей версией Клео всё работает, пришлось делать даунгрейд
Offline
Да, была ошибка - профиксено. Выложены новые версии.
Offline
Да, была ошибка - профиксено. Выложены новые версии.
При загрузки сохранения виснет. Установленные плагины и скрипты: GxtHook.cleo, showsavescreen.cs, dbmu_cleo.cs. Игра сохранена с помощью showsavescreen.cs.
Offline
2Sanchez:
Судя по всему, это проблема именно скрипта dbmu_cleo.cs. Я уже замечал его нестабильную работу.
Вылет после загрузки происходит здесь (блок чтения цели игрока):
0@ = 300694 0085: 0@ = &0(0@,1i) inc(0@, 0x79C) 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 // тут ошибка
если перед 0A8D поставить Continue, то игра сохраняется/загружается нормально. Видимо адрес, в котором хранится хендл актера, на которого целится игрок (300694), не успевает проинициализироваться после загрузки сейва. Если вставить в самом начале скрипта wait 0, вылет пропадает.
Offline
А у меня проблемы с сохранением игры - игра вылетает при попытке сохраниться обычным способом. Версия 1.0 US, CLEO3, scm - Driver mod 1.3, из CLEO скриптов только scm500k.cleo в папке CLEO. Причем ставлю обратно CLEO2, (больше ничего не меняю) и игра сохраняется без проблем. Похоже это проблема третьей версии...
Кроме сохранения все функции CLEO работают без проблем.
Last edited by jayrocc (01-12-2007 13:50)
Offline
Очень интересная находка. Действительно CLEO3 и scm500k.cleo конфликтуют между собой. По стечению обстоятельств они оба модифицируют один и тот же кусок кода, причем сначала это делает CLEO.asi, а потом загружаемый им плагин. Соответственно после того как плагин подправит код "под себя", для CLEO.asi это место становится фатальным. Собственно при сохранении это видно
Решение проблемы: загрузить плагин ДО cleo.asi. Перемести scm500k.cleo в корневую папку игры и переименуй в AAAScm500k.asi. Ворбис должен сначала найти и загрузить эту библиотеку, а уже потом cleo.asi, и сохранение будет работать нормально.
Offline
Гениально, проверил - работает. Нужно потестить, но с showscreensav.cleo сохраняет и загружает без проблем. спасибо!
Offline
компилил скрипты из тех, что у меня стояли в main секции scm'a. Некоторые работают (тушение машины огнетушителем, мой скрипт самолетов, бензин для машин), а некторые нет, например этот - бензоколонки. Игра вылетает при загрузке/начале новой.
Переменная $11055 это машина игрока. (машина игрока привязывается к этой переменной в скрипте самого расхода бензина).
Может скрипт вылетает из-за того, что машина определена в другом скрипте?
Как можно создавать CLEO поток с проверкой wasted_or_busted?
{$CLEO} :NONAME_1 thread "PETROLST" wait 0 if $ONMISSION == 0 // integer values else_jump @NONAME_1 if and Actor.Driving($PLAYER_ACTOR) Actor.Stopped($PLAYER_ACTOR) else_jump @NONAME_1 if and 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2640.0 1107.0 10.0 radius 5.5 8.7 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2114.0 919.0 11.0 radius 5.5 8.7 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1597.0 2199.0 11.5 radius 5.5 8.7 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2202.0 2473.0 11.0 radius 8.7 5.5 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2146.5 2753.4 11.0 radius 5.5 3.5 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1328.1 2677.3 50.0 radius 2.0 10.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1471.0 1864.5 32.0 radius 8.0 8.0 2.0 sphere 0 else_jump @NONAME_1_2111 if and 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2410.5 975.5 45.5 radius 7.5 4.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1677.7 415.0 7.3 radius 15.5 15.5 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2242.5 -2563.1 32.0 radius 3.5 3.5 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1382.5 460.0 20.3 radius 4.0 7.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 655.6 -565.0 16.3 radius 4.0 8.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1942.4 -1773.0 13.3 radius 4.0 9.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1605.4 -2714.0 48.3 radius 10.0 13.0 2.0 sphere 0 else_jump @NONAME_1_2111 if and 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1001.2 -940.3 42.1 radius 10.0 10.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 487.9 -1739.7 10.7 radius 12.0 12.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1024.6 -1023.1 31.7 radius 12.0 12.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2065.6 -1831.7 13.1 radius 12.0 12.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2746.1 -2585.9 0.3 radius 30.0 30.0 5.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1632.7 158.6 0.3 radius 10.0 10.0 5.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1895.9 1400.4 0.3 radius 15.0 15.0 5.0 sphere 0 else_jump @NONAME_1_2111 if and 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2953.0 502.5 0.3 radius 30.0 30.0 5.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2231.0 2422.0 0.3 radius 60.0 60.0 5.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -631.0 1807.5 0.3 radius 30.0 30.0 5.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1627.5 572.5 0.3 radius 10.0 10.0 5.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2356.0 520.5 0.3 radius 15.0 15.0 5.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 722.0 -1499.5 0.3 radius 20.0 20.0 5.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1508.0 1301.0 0.3 radius 10.0 9.0 5.0 sphere 0 else_jump @NONAME_1_2111 if and 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1544.0 -1353.5 330.3 radius 10.0 10.0 4.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1005.0 -934.5 42.3 radius 10.0 9.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2229.0 2327.5 7.3 radius 10.0 13.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1766.9 -2284.1 26.3 radius 10.0 13.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2618.0 2721.0 36.3 radius 10.0 13.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 309.0 1992.3 18.5 radius 30.0 30.0 3.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1360.0 500.0 19.0 radius 80.0 10.0 4.0 sphere 0 else_jump @NONAME_1_2111 if and 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1680.0 705.0 31.5 radius 10.0 10.0 4.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2092.7 2414.5 13.3 radius 4.0 9.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -939.7 2642.3 40.0 radius 25.0 25.0 5.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -90.0 -1168.5 13.3 radius 4.0 9.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 615.0 1693.0 13.3 radius 4.0 9.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1163.0 -186.0 48.3 radius 10.0 13.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1436.8 -2446.6 13.3 radius 4.0 9.0 2.0 sphere 0 else_jump @NONAME_1_2111 if and 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1389.9 1770.1 48.3 radius 10.0 13.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2656.2 642.3 48.3 radius 10.0 13.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 719.1 -457.5 15.9 radius 10.0 13.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1905.5 284.3 40.7 radius 10.0 13.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2424.7 1023.1 49.9 radius 10.0 13.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1420.1 2585.8 55.4 radius 10.0 13.0 2.0 sphere 0 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -100.3 1115.6 19.7 radius 10.0 13.0 2.0 sphere 0 else_jump @NONAME_1_2111 if 8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1974.6 2162.6 10.6 radius 10.0 13.0 2.0 sphere 0 else_jump @NONAME_1_2111 if and Actor.Driving($PLAYER_ACTOR) Actor.Stopped($PLAYER_ACTOR) 00A4: actor $PLAYER_ACTOR 0 598.0 1708.7 6.5 629.3 1675.8 9.0 else_jump @NONAME_1_2046 jump @NONAME_1_2111 :NONAME_1_2046 if and Actor.Driving($PLAYER_ACTOR) Actor.Stopped($PLAYER_ACTOR) 00A4: actor $PLAYER_ACTOR 0 -87.6 -1179.1 2.0 -95.0 -1159.5 5.0 else_jump @NONAME_1 jump @NONAME_1_2111 :NONAME_1_2111 wait 100 if and not Car.Model($11055) == #BMX not Car.Model($11055) == #BIKE not Car.Model($11055) == #MTBIKE not Car.Model($11055) == #FREIGHT not Car.Model($11055) == #BAGGAGE not Car.Model($11055) == #CADDY not Car.Model($11055) == #SWEEPER else_jump @NONAME_1 if and not Car.Model($11055) == #STREAKC not Car.Model($11055) == #STREAK not Car.Model($11055) == #TRAM not Car.Model($11055) == #FREIFLAT not Car.Model($11055) == #FREIBOX else_jump @NONAME_1 if not $11054 > 99 // integer values else_jump @NONAME_1_2290 if Player.Money($PLAYER_CHAR) > 1 else_jump @NONAME_1_2344 $11054 += 1 // integer values Player.Money($PLAYER_CHAR) += -1 jump @NONAME_1 :NONAME_1_2290 wait 0 054C: use_GXT_table 'MAN_2' 00BC: text_highpriority 'MAN2_EF' 1000 ms 1 // ~z~You're not a British tank, so you should be fine. wait 5000 054C: use_GXT_table 'ZERO2' jump @NONAME_1 :NONAME_1_2344 wait 0 00BC: text_highpriority 'IE07' 1000 ms 1 // ~r~You don't have enough cash! wait 5000 054C: use_GXT_table 'ZERO2' jump @NONAME_1
Last edited by jayrocc (01-12-2007 18:43)
Offline
Во-первых, у тебя переход на первую метку скрипта, а это 100% вылет.
Во-вторых, глобальные переменные не стоит использовать в CLEO-скриптах, да и какой смысл использовать отдельно определение автомобиля игрока, когда все это можно делать в одном скрипте.
Я уже делал CLEO-скрипт бензина.
3) 0112: wasted_or_busted // mission only
Last edited by yelmi (02-12-2007 02:01)
Offline
ну в общем понятно...
я тут хотел в моде поменять многокнопочные комбинации клавиш, но не нашел как можно проверить, что кнопка не нажата
0AB0: key_pressed 143
- просто проверяет, что нажата, что делать с таким исходным скриптом, когда используется проверка NOT?
wait 0 if and 80E1: not key_pressed 0 16 80E1: not key_pressed 0 18 else_jump @NONAME_3_59
Last edited by jayrocc (06-12-2007 22:02)
Offline
Отрицание NOT в *ЛЮБОМ* условном опкоде можно сделать путем замены первой цифры 0 на 8.
8AB0: NOT key_pressed 143
Отдельно отрицательных условных опкодов типа 80E1 не существует, это тот же самый 00E1 просто с флагом NOT
Offline
Их количество и размер неограничены
Offline
На этой странице можно найти большое количество неплохих CLEO-скриптов и миссий, от забавных, как например полеты на швабре и до очень серьезных, как лазерные лучи Единственная проблема - сайт на китайском языке. Но найти ссылки на скрипты или видео для просмотра, несложно. Советую всем
Offline
2Seemann:
Супер!
Только сайт не на китайском, а на японском. Google Globalisation в помощь
http://translate.google.com/translate?u … en&ie=UTF8
Last edited by listener (04-01-2008 16:23)
Offline
2listener:
Тебе, конечно, лучше знать
просто я нашел ссылку на эту страницу здесь: http://www.twbbs.net.tw/2194595.html Поскольку .tw это Тайвань, а говорят там вроде на китайском, отсюда и вывод.
Offline
Залил для тестирования новую версию CLEO 3.0.947
http://cleo.sannybuilder.com/cleo3.rar
Изменения незначительные: исправлена ошибка в опкодах 0A8F..0A91, в меню игры показывается кол-во загруженных скриптов и добавлен новый опкод
0ABA: end_custom_thread_named 'BENZIN'
Этот опкод аналогичен 0459, только предназначен для CLEO-скриптов. Для того чтобы использовать его в скриптах, надо добавить в SASCM.INI в конец строку
0ABA=1,end_custom_thread_named %1s%
В архив также включен ASI Loader от JernejL, т.к. loader от listener'а не у всех работает.
Если будут ошибки в новой версии - пишите. Если тестирование пройдет удачно, на следующей неделе опубликую официально.
Last edited by Seemann (20-07-2008 04:27)
Offline
Крут...
Offline