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:
1 2 3 4 5 6 7 8 | # ----- 0 Stats 0 # ----- 1 Game(new, load, delete) 1 # ----- 2 Brief 2 |
Строки, начинающиеся с # - комментарии. После комментария стоят числа (одно на каждой строке). Число обозначает номер текстуры на данном экране меню:
1 2 3 4 5 6 7 8 9 | # 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):
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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. Я уже замечал его нестабильную работу.
Вылет после загрузки происходит здесь (блок чтения цели игрока):
1 2 3 4 | 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?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | { $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
ну в общем понятно...
я тут хотел в моде поменять многокнопочные комбинации клавиш, но не нашел как можно проверить, что кнопка не нажата
1 | 0AB0: key_pressed 143 |
- просто проверяет, что нажата, что делать с таким исходным скриптом, когда используется проверка NOT?
1 2 3 4 5 | 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.
1 | 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, в меню игры показывается кол-во загруженных скриптов и добавлен новый опкод
1 | 0ABA: end_custom_thread_named 'BENZIN' |
Этот опкод аналогичен 0459, только предназначен для CLEO-скриптов. Для того чтобы использовать его в скриптах, надо добавить в SASCM.INI в конец строку
1 | 0ABA=1,end_custom_thread_named %1s% |
В архив также включен ASI Loader от JernejL, т.к. loader от listener'а не у всех работает.
Если будут ошибки в новой версии - пишите. Если тестирование пройдет удачно, на следующей неделе опубликую официально.
Last edited by Seemann (20-07-2008 04:27)
Offline
Крут...
Offline