#101 28-03-2010 15:52

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO 4 для GTA San Andreas

Viger wrote:

Я заметил, что в клео-плагинах не работает с ини файлами строка по указателю

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

по второму. У меня вроде работает.

1
2
3
4
5
6
7
8
9
10
11
{$CLEO}
0000:
gosub @test
0a93:
 
:test
if
    059A: NOP_false
0AA1: return_if_false
0ACA: show_text_box "return_if_false doesn't work"
return

Offline

#102 29-03-2010 17:40

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: CLEO 4 для GTA San Andreas

Возникла проблемка, скрипты которые не .cs, динамические, не работают с опкодом 03A4:, если, например, вызвать такой поток с параметрами и в качестве параметров передать имя потока, то динамический поток не получает должное имя, а только то, что называет файл динамического скрипта.


I know everything and nothing...

Offline

#103 30-03-2010 22:28

Viger
Registered: 14-05-2009
Posts: 24

Re: CLEO 4 для GTA San Andreas

Дак а поддержка будет хотя бы для ини строк по указателю? Мне надо для скрипта, я вобще на квик опкоде уже написал)) Ну всё равно в клео лучше было бы иначе вобще смысл там какой, когда из ини считать стринг даже не получится скажем из-за того что указатели не поддерживаются...

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

Offline

#104 06-04-2010 22:55

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO 4 для GTA San Andreas

ОК. Переработал все плагины. Собрал все в один solution, добавил поддержку строк по указателю в IniFiles.cleo и добавил еще один ерундовый плагин - IntOperations.cleo.

Offline

#105 07-04-2010 06:02

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: CLEO 4 для GTA San Andreas

mfisto wrote:

Возникла проблемка, скрипты которые не .cs, динамические, не работают с опкодом 03A4:, если, например, вызвать такой поток с параметрами и в качестве параметров передать имя потока, то динамический поток не получает должное имя, а только то, что называет файл динамического скрипта.

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


I know everything and nothing...

Offline

#106 07-04-2010 20:33

CraZZZy-GameRRR
From: Москва
Registered: 11-08-2009
Posts: 97
Website

Re: CLEO 4 для GTA San Andreas

Похоже, я баг нашёл в CLEO 4.

Вот мой скрипт нормального ручного тормоза:

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
0000: NOP
 
:Brake_1
wait 0
if
    Actor.Driving($PLAYER_ACTOR)
jf @Brake_1
03C0: 0@ = actor $PLAYER_ACTOR car
2@ = 0
 
:Brake_2
wait 0
if
    Actor.Driving($PLAYER_ACTOR)
jf @Brake_10
 
01BD: 1@ = current_time_in_ms
0062: 1@ -= 3@
 
IF
    1@ >= 350   
jf @Brake_3
 
IF
    0AB0:  key_pressed 0x42
THEN
    IF
        2@ == 1   
    THEN
        2@ = 0
    ELSE
        2@ = 1   
    END
    01BD: 3@ = current_time_in_ms
END
 
:Brake_3
IF
    2@ == 1
THEN
    0A8C: write_memory 0xB73464 size 1 value 255 virtual_protect 0
END
jump @Brake_2
 
:Brake_10
Car.RemoveReferences(0@)
jump @Brake_1

Жмём <B> - машина стоит, ещё раз жмём - не стоит.

А этот скрипт определяет состояние ручника:

1
2
3
4
5
6
7
8
9
10
0000: NOP
 
:BrakeTest
wait 0
if
   Actor.Driving($PLAYER_ACTOR)
jf @BrakeTest
0A8D: 1@ = read_memory 0xB73464 size 1 virtual_protect 0
01E4: show_text_1number_lowpriority GXT 'NUMBER' number 1@ time 0 flag 1
jump @BrakeTest

Проблема в том, что в CLEO 4 (v 4.1.0.25) если использовать мой ручник, скрипт проверки всегда выдаёт 0 (ручник опущен), а если обычный (пробел) - определяет правильно. В CLEO 3 (v 3.0.950) работает без проблем.

Last edited by CraZZZy-GameRRR (07-04-2010 20:54)

Offline

#107 07-04-2010 23:31

GTASA
Registered: 13-09-2008
Posts: 476

Re: CLEO 4 для GTA San Andreas

А еще в клео 4, если изменять гравитацию игры, она не меняется так, как нужно мне. В клео 3 все прекрасно.

Offline

#108 08-04-2010 11:50

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO 4 для GTA San Andreas

@CraZZZy-GameRRR - скорее всего все дело в том, что второй скрипт (который проверяет состояние клаиши) находится в очереди перед первым скриптом (который устанавливает состояние клавиши). То есть сначала проверяется "нажатость" клавиши, а потом только она "нажимается". А при следующей обработке скриптов эта память уже обнуляется (состояния клавиш переносятся в структуру prevPadState).
Попробуй проверять во втором скрипте текущее состояние клавиши и обработанное:

1
2
3
4
5
6
7
8
9
10
while true
    wait 0
    0A8D: 0@ = read_memory 0xB73464 size 1 virtual_protect 0
    if
        0@ == 0
    then
        0A8D: 0@ = read_memory 0xB73494 size 1 virtual_protect 0
    end
    01E4: show_text_1number_lowpriority GXT 'NUMBER' number 0@ time 0 flag 1
end

@GTASA - код, пожалуйста.

Offline

#109 08-04-2010 21:43

CraZZZy-GameRRR
From: Москва
Registered: 11-08-2009
Posts: 97
Website

Re: CLEO 4 для GTA San Andreas

@Alien - Спасибо, теперь работает правильно!

Alien, ести не трудно, можешь в CLEO добавить опкод типа 038F для загрузки текстур из PNG файлов?

Offline

#110 09-04-2010 09:08

GTASA
Registered: 13-09-2008
Posts: 476

Re: CLEO 4 для GTA San Andreas

Вот мой код. На клео 3 отлично работает, в клео 4 изменяется гравитация вообще не так как надо (даже стандартная 0.009 ставится не так)

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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
{$CLEO}
wait 0
:STRT
wait 0
if
Player.Defined($PLAYER_CHAR)
jf @STRT
 
if and
0AB0:  key_pressed 71
0AB0: 49
then
1@ = 0.300
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1  
018C: play_sound 1057 at 0.0 0.0 0.0
:0
wait 0
if
8AB0: 49
jf @0
end
 
if and
0AB0:  key_pressed 71
0AB0: 50
then
1@ = 0.100
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1
018C: play_sound 1057 at 0.0 0.0 0.0
 
:1
wait 0
if
8AB0: 50
jf @1
end
 
if and
0AB0:  key_pressed 71
0AB0: 51
then
1@ = 0.030
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1
018C: play_sound 1057 at 0.0 0.0 0.0
:2
wait 0
if
8AB0: 51
jf @2
end
 
if and
0AB0:  key_pressed 71
0AB0: 52
then
1@ = 0.015
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1
018C: play_sound 1057 at 0.0 0.0 0.0
:3
wait 0
if
8AB0: 52
jf @3
end 
 
if and
0AB0:  key_pressed 71
0AB0: 53
then
1@ = 0.008
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1
018C: play_sound 1057 at 0.0 0.0 0.0
wait 200
018C: play_sound 1056 at 0.0 0.0 0.0
:4
wait 0
if
8AB0: 53
jf @4
end
 
if and
0AB0:  key_pressed 71
0AB0: 54
then
1@ = 0.007
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1
018C: play_sound 1056 at 0.0 0.0 0.0
:5
wait 0
if
8AB0: 54
jf @5
end
 
if and
0AB0:  key_pressed 71
0AB0: 55
then
1@ = 0.006
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1
018C: play_sound 1056 at 0.0 0.0 0.0
:6
wait 0
if
8AB0: 55
jf @6
end
 
if and
0AB0:  key_pressed 71
0AB0: 56
then
1@ = 0.005
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1
018C: play_sound 1056 at 0.0 0.0 0.0
:7
wait 0
if
8AB0: 56
jf @7
end
 
if and
0AB0:  key_pressed 71
0AB0: 57
then
1@ = 0.003
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1
018C: play_sound 1056 at 0.0 0.0 0.0
:8
wait 0
if
8AB0: 57
jf @8
end
 
if and
0AB0:  key_pressed 71
0AB0: 48
then
1@ = 0.001
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1
018C: play_sound 1056 at 0.0 0.0 0.0
:9
wait 0
if
8AB0: 48
jf @9
end
 
if and
0AB0:  key_pressed 71
0AB0: 189
then
1@ -= 0.001
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1
018C: play_sound 1056 at 0.0 0.0 0.0
02FD: show_text_2numbers_lowpriority GXT 'Number' numbers 1@ 1@ time 150 flag 1 // ~b~1 Pointer!~s~ Distance ~1~.~1~m
wait 100
end
 
if and
0AB0:  key_pressed 71
0AB0: 187
then
1@ += 0.001
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1
018C: play_sound 1057 at 0.0 0.0 0.0
02FD: show_text_2numbers_lowpriority GXT 'Number' numbers 1@ 1@ time 150 flag 1 // ~b~1 Pointer!~s~ Distance ~1~.~1~m
wait 100
end
 
jump @STRT

Offline

#111 09-04-2010 10:46

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO 4 для GTA San Andreas

ты издеваешься что ли?

1
0A8C: write_memory 8796548 size 3 value 1@ virtual_protect 1

Какой еще size 3?
@CraZZZy-GameRRR - попытаться можно, но смысл-то в чем? Лень упаковывать текстуры в архивы?

Last edited by Alien (09-04-2010 13:20)

Offline

#112 09-04-2010 14:10

GTASA
Registered: 13-09-2008
Posts: 476

Re: CLEO 4 для GTA San Andreas

Да, я допустил ошибку. Исправил у себя. Но я этот скрипт делал очень давно, и все работало! И сейчас у меня клео 3 и все работает. А вот клео 4 все-таки глючит. Тем более при загрузке игры у меня вообще скрипты некоторые не работают и т.д.

Offline

#113 09-04-2010 23:33

CraZZZy-GameRRR
From: Москва
Registered: 11-08-2009
Posts: 97
Website

Re: CLEO 4 для GTA San Andreas

@CraZZZy-GameRRR - попытаться можно, но смысл-то в чем? Лень упаковывать текстуры в архивы?

Ну, например, любой желающий сможет нарисовать и с лёгкостью подключить свой собственный скин к моему спидометру. К тому же текстуры в PNG весят намного меньше нежели в TXD (у меня 240 КБ против 2.27 МБ). Можно ещё кучу других пременений придумать.

Offline

#114 10-04-2010 14:35

reute70
From: Средняя Волга
Registered: 22-08-2009
Posts: 182

Re: CLEO 4 для GTA San Andreas

Эт какого же размера текстура у тебя в ТХД ? и в сжатом виде?

Offline

#115 14-04-2010 16:09

Sanchez
Registered: 18-08-2006
Posts: 280

Re: CLEO 4 для GTA San Andreas

frOpcodes
Плагин добавляет в игру 7 опкодов, для работы с математическими функциями.

1
2
0CC0=2,%2d% = DEG2RAD %1d%
0CC0: 0@ = DEG2RAD 1@

Функция преобразования углов. Преобразует градусы в радианы.

1
2
0CC1=2,%2d% = RAD2DEG %1d%
0CC1: 0@ = RAD2DEG 1@

Функция преобразования углов. Преобразует радианы в градусы.

1
2
0CC2=4,THETA %1d% SIN %2d% COS %3d% TAN %4d%
0CC2: THETA 0@ SIN 1@ COS 2@ TAN 3@

Возвращает синус, косинус и тангенс угла Theta.

1
2
0CC3=4,THETA %1d% ASIN %2d% ACOS %3d% ATAN %4d%
0CC3: THETA 0@ ASIN 1@ ACOS 2@ ATAN 3@

Возвращает арксинус, арккосинус и арккотангенс угла Theta.

1
2
0CC4=3,THETA %1d% SEC %2d% COSECANT %3d%
0CC4: THETA 0@ SEC 1@ COSECANT 2@

Возвращает секанс, косеканс угла Theta.

1
2
0CC5=3,%3d% = HYPOT %1d% %2d%
0CC5: 0@ = HYPOT 1@ 2@

Корень квадратный из (x^2 + y^2) - гипотенуза прямоугольного треугольника по двум катетам.

1
2
0CC6=3,VALUE %1d% CEIL %2d% FLOOR %3d%
0CC6: VALUE 0@ CEIL 1@ FLOOR 2@

Округление до ближайшего большего, меньшего целого числа.

Offline

#116 14-04-2010 20:30

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: CLEO 4 для GTA San Andreas

@Alien
0B54:
как его использовать?


I know everything and nothing...

Offline

#117 14-04-2010 20:50

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: CLEO 4 для GTA San Andreas

Копируешь .cleo файл в SA/CLEO/ , перезагружаешь SB, and enjoy!

Offline

#118 15-04-2010 11:15

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: CLEO 4 для GTA San Andreas

ты это о чем?

если о моем вопросе то читай внимательно.

Last edited by mfisto (15-04-2010 11:16)


I know everything and nothing...

Offline

#119 15-04-2010 13:14

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: CLEO 4 для GTA San Andreas

Блин, не заметил, ты про один опкод спрашиваешь...

Offline

#120 16-04-2010 19:53

Sanchez
Registered: 18-08-2006
Posts: 280

Re: CLEO 4 для GTA San Andreas

frOpcodes
+2 опода:

1
2
0CC7=4,%4d% = STRUCT %1d% FIELD %2d% SIZE %3d%
0CC7: 0@ = STRUCT 1@ FIELD 2@ SIZE 3@
1
2
0CC8=4,SRTUCT %1d% FILED %2d% SIZE %3d% = %4d%
0CC8: STRUCT 0@ FIELD 1@ SIZE 3@ = 4@

Читает / записывает значение указанного поля структуры.

Скрипт для тестирования:

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
{$CLEO}
var
    1@: Integer
    2@: Integer
end
33@ = 0
while true
    wait 0
    if
        Player.Defined($PLAYER_CHAR)
    then
        if
            Actor.Driving($PLAYER_ACTOR)
        then
            if and
                0AB0:  key_pressed 0x73
                33@ > 150
            then
                03C0: 0@ = actor $PLAYER_ACTOR car
                0A97: 0@ = car 0@ struct
                0CC7: 1@ = STRUCT 0@ FIELD 1076 SIZE 1
                0CC7: 2@ = STRUCT 0@ FIELD 1077 SIZE 1
                0CC7: 3@ = STRUCT 0@ FIELD 34 SIZE 2
                0ACE: show_formatted_text_box "Body color: %d~n~Stripe color: %d~n~Model: %d" 1@ 2@ 3@
                33@ = 0
            end
             
            if and
                0AB0:  key_pressed 0x74
                33@ > 150
            then
                03C0: 0@ = actor $PLAYER_ACTOR car
                0A97: 0@ = car 0@ struct
                1@ = Random(0, 127)
                2@ = Random(1, 127)
                0CC8: STRUCT 0@ FIELD 1076 SIZE 1 = 1@
                0CC8: STRUCT 0@ FIELD 1077 SIZE 1 = 2@
                33@ = 0
            end
        end
    end
end

Offline

#121 17-04-2010 05:13

Viger
Registered: 14-05-2009
Posts: 24

Re: CLEO 4 для GTA San Andreas

У меня... блин щас номер версии клео 4 не скажу) (не последня) там вобщем запускается внешний клео-скрипт опкодом 0A92: create_custom_thread "radio.lscr"
И в папке с игрой он отсутствовал - в результате игра слетала, в клео 3 у опкода была проверка на существование файла... Надо бы добавить smile

Offline

#122 18-04-2010 21:13

CraZZZy-GameRRR
From: Москва
Registered: 11-08-2009
Posts: 97
Website

Re: CLEO 4 для GTA San Andreas

Скрипт:

1
2
3
4
5
6
7
8
{$CLEO .cs}
wait 6000
0AF4: 1@v = read_string_from_ini_file "cleo\Config.ini" section "General" key "Param1"
0AF4: 2@v = read_string_from_ini_file "cleo\Config.ini" section "General" key "Param2"
0ACC: show_text_lowpriority 1@v time 3000
wait 2000
0ACC: show_text_lowpriority 2@v time 3000
0A93: end_custom_thread

INI-файл, который мы читаем:

1
2
3
[General]
Param1=True
Param2=False

Затем всё внимание на экран...
Выводит первую переменную - TrueFalse (???).
Затем вторую - False (вроде правильно).

Это можно исправить?

Last edited by CraZZZy-GameRRR (18-04-2010 21:14)

Offline

#123 20-04-2010 08:53

Sanchez
Registered: 18-08-2006
Posts: 280

Re: CLEO 4 для GTA San Andreas

@CraZZZy-GameRRR - @v - шестнадцатибайтовые переменные. Строка в 1@v занимает четыре переменные 1@..4@ Т.е. после первого присваивания у тебя в переменных будет:

1
2
1@   2@   3@   4@
True .... .... ....

после вторгого:

1
2
1@   2@   3@   4@
True Fals e... ....

У тебя строки перезаписывают друг друга.

Это можно исправить?

Замени 2@v на 5@v.

Last edited by Sanchez (20-04-2010 08:54)

Offline

#124 20-04-2010 21:31

CraZZZy-GameRRR
From: Москва
Registered: 11-08-2009
Posts: 97
Website

Re: CLEO 4 для GTA San Andreas

Теперь всё понятно.

Offline

#125 23-04-2010 19:53

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO 4 для GTA San Andreas

Эх, чего-то я увлекся уменьшением размера бинарников. В обновлении CLEO.asi весит меньше 40 КБ. Плагины FileSystemOperations.cleo, IniFiles.cleo, IntOperations.cleo по 3-4 КБ каждый. Также собрал свой asi loader (опять таки меньшего размера).:crazy:

Offline

Board footer

Powered by FluxBB