#26 01-09-2007 05:46

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

Выложил новую версию CLEO 3.0.541. Это важное обновление и рекомендуется использовать его, особенно важно использовать эту версию вместо той, что идет в комплекте SB 3.01.

В новой версии появилась возможность использовать в скриптах опкод 03A4. Также была немного изменена структура CLEO-сейва.

Отныне в CLEO-сейве сохраняются не только потоки из файлов с расширением CS, но и вообще любые потоки, запущенные через 0A92 с флагом сохранения 0A95. Например, если после прохождения миссии вы создадите новый поток из файла NewTrigger.tr после сохранения/загрузки он продолжит работу вместе со всеми.

Старые CLEO-сейвы (sav-файлы в папке CLEO\cleo_saves) загружаться не будут.

Offline

#27 23-09-2007 17:48

fedo
Registered: 24-04-2007
Posts: 25

Re: FAQ по CLEO 3

перестают это я подхожу к синей дискете и она исчезает - + незапускается миссия такси - такое чувство что игра отрубает все внешние скрипты или ехе , чо такое незнаю у брал thread 'F4'

Offline

#28 20-10-2007 10:53

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

Написал новую примочку для GTASA.

http://cleo.sannybuilder.com/plugins/hume.rar

Плагин Hume растягивает текстуры в меню на весь экран, делая его, таким образом, более красивым. Пример нового изображения:

humegs7.th.jpg

Кроме того, плагин позволяет менять то, какая из текстур файла 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

#29 20-10-2007 11:13

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

Если по каким-то причинам плагин 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

#30 20-10-2007 12:33

Alexander
Registered: 19-08-2006
Posts: 184
Website

Re: FAQ по CLEO 3

наконец-то ... )
добавлю данную фичу в меню-эдитор .

Offline

#31 16-11-2007 16:04

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: FAQ по CLEO 3

Эмм.. скачал я Клео за нумером 3.0.646, а при загрузке игры она(игра) виснет. Просто черный экран и всё. Ничего больше. Поставил более ранюю версию Клео - и всё заработало.
З.Ы. Извеняюсь, если не в ту тему.

Offline

#32 16-11-2007 19:01

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

2flashTrash:
Виснет при запуске ехе или начале новой игры (загрузке сейва)? Какие стоят плагины/скрипты?
Версия игры?

Offline

#33 16-11-2007 20:21

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: FAQ по CLEO 3

2Seemann.
при загрузке сэйва, когда всё уже загружено и экран гаснет, как обычно, чтоб потом показать название местности и включиться, - тогда и происходит зависание. ctrl+alt+del.
версия - 1.0 US, плагины - scm log, скриптики CLEO мелкие. С предыдущей версией Клео всё работает, пришлось делать даунгрейд sad

Offline

#34 17-11-2007 07:48

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

Да, была ошибка - профиксено. Выложены новые версии. wink

Offline

#35 17-11-2007 10:21

Sanchez
Registered: 18-08-2006
Posts: 280

Re: FAQ по CLEO 3

Да, была ошибка - профиксено. Выложены новые версии.

При загрузки сохранения виснет. Установленные плагины и скрипты: GxtHook.cleo, showsavescreen.cs, dbmu_cleo.cs. Игра сохранена с помощью showsavescreen.cs.

Offline

#36 17-11-2007 11:22

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

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

#37 01-12-2007 13:20

jayrocc
From: MSK
Registered: 09-06-2007
Posts: 50

Re: FAQ по CLEO 3

А у меня проблемы с сохранением игры - игра вылетает при попытке сохраниться обычным способом. Версия 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

#38 01-12-2007 14:13

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

Очень интересная находка. Действительно CLEO3 и scm500k.cleo конфликтуют между собой. По стечению обстоятельств они оба модифицируют один и тот же кусок кода, причем сначала это делает CLEO.asi, а потом загружаемый им плагин. Соответственно после того как плагин подправит код "под себя", для CLEO.asi это место становится фатальным. Собственно при сохранении это видно wink

Решение проблемы: загрузить плагин ДО cleo.asi. Перемести scm500k.cleo в корневую папку игры и переименуй в AAAScm500k.asi. Ворбис должен сначала найти и загрузить эту библиотеку, а уже потом cleo.asi, и сохранение будет работать нормально.

Offline

#39 01-12-2007 14:22

jayrocc
From: MSK
Registered: 09-06-2007
Posts: 50

Re: FAQ по CLEO 3

Гениально, проверил - работает. Нужно потестить, но с showscreensav.cleo сохраняет и загружает без проблем. спасибо!

Offline

#40 01-12-2007 18:36

jayrocc
From: MSK
Registered: 09-06-2007
Posts: 50

Re: FAQ по CLEO 3

компилил скрипты из тех, что у меня стояли в 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

#41 02-12-2007 02:01

yelmi
Registered: 10-12-2006
Posts: 134
Website

Re: FAQ по CLEO 3

Во-первых, у тебя переход на первую метку скрипта, а это 100% вылет.
Во-вторых, глобальные переменные не стоит использовать в CLEO-скриптах, да и какой смысл использовать отдельно определение автомобиля игрока, когда все это можно делать в одном скрипте.
Я уже делал CLEO-скрипт бензина. smile

3) 0112:   wasted_or_busted // mission only

Last edited by yelmi (02-12-2007 02:01)

Offline

#42 06-12-2007 22:02

jayrocc
From: MSK
Registered: 09-06-2007
Posts: 50

Re: FAQ по CLEO 3

ну в общем понятно...

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

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

#43 07-12-2007 07:44

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

Отрицание NOT в *ЛЮБОМ* условном опкоде можно сделать путем замены первой цифры 0 на 8.

8AB0:  NOT key_pressed 143

Отдельно отрицательных условных опкодов типа 80E1 не существует, это тот же самый 00E1 просто с флагом NOT

Offline

#44 26-12-2007 05:14

Agenzvell
From: Windows/system32
Registered: 28-08-2007
Posts: 109
Website

Re: FAQ по CLEO 3

Каков максимальный размер CLEO - скриптов?

Offline

#45 26-12-2007 05:19

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

Их количество и размер неограничены

Offline

#46 03-01-2008 13:56

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

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

Offline

#47 04-01-2008 16:22

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: FAQ по CLEO 3

2Seemann:
Супер!

Только сайт не на китайском, а на японском. Google Globalisation в помощь
http://translate.google.com/translate?u … en&ie=UTF8

Last edited by listener (04-01-2008 16:23)

Offline

#48 04-01-2008 16:36

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

2listener:
Тебе, конечно, лучше знать wink
просто я нашел ссылку на эту страницу здесь: http://www.twbbs.net.tw/2194595.html Поскольку .tw это Тайвань, а говорят там вроде на китайском, отсюда и вывод.

Offline

#49 07-06-2008 07:48

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: FAQ по CLEO 3

Залил для тестирования новую версию 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

#50 07-06-2008 13:07

Centrino Duo
Registered: 08-05-2008
Posts: 99

Re: FAQ по CLEO 3

Крут...

Offline

Board footer

Powered by FluxBB