#101 28-03-2010 15:52

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO 4 для GTA San Andreas

Viger wrote:

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

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

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

{$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.

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

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> - машина стоит, ещё раз жмём - не стоит.

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

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).
Попробуй проверять во втором скрипте текущее состояние клавиши и обработанное:

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 ставится не так)

{$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

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

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 опкодов, для работы с математическими функциями.

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

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

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

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

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

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

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

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

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

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

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

Корень квадратный из (x^2 + y^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 опода:

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

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

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

{$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

Скрипт:

{$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-файл, который мы читаем:

[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@   3@   4@
True .... .... ....

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

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