#26 25-02-2010 19:41

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: CLEO 4 для GTA San Andreas

(Осторожно: плохо переведен на Английский Русский ниже):

Я рассчитываю 48 опкодами ...

Я закончил добавление всех CLEO 4 опкодами Opcode к базе данных, доступна здесь: http://gtag.gtagaming.com/opcode-database

Там вы можете просматривать Opcode описания (Я перевел их на английский, но некоторые вещи могут немного путается в процессе) и скачать последнюю sascm.ini и opcodes.txt. Одна включен в качестве части CLEO 4 пропускает некоторые из самых последних открытий. Некоторые из которых я нашел полезным.

Большая работа по опкодами! Некоторые из этих невероятно полезна тем, что я сейчас работаю...

Translation

Offline

#27 25-02-2010 20:47

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

Re: CLEO 4 для GTA San Andreas

@Alien

Речь идет о том что под windows 7 есть спец. фича, которая наз. вызов из под администратора, короче без помощи Viger'а я отключил эту хуню, но теперь все работает абсолютно доступно, однако сохранения все равно не подгружаются, вот так.

Это скорее какая особенность работы винды 7.
Но это рабочий режим (режим полного доступа без подключения опции вызова из под администратора) считается в ней, так что эту ошибку надо исправить!


I know everything and nothing...

Offline

#28 25-02-2010 23:12

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: CLEO 4 для GTA San Andreas

Я не думаю, что мое сообщение было отправлено ... Сайт Sanny Builder казалось спуститься, прежде чем я сумела пост.

В любом случае. Я задавался вопросом, Opcode 0ACE может иметь дополнительные параметры (которые обычно доступны в функции) для отображения текста без звука или даже лучше ... Показаны постоянных поле?

Offline

#29 26-02-2010 09:09

GTASA
Registered: 13-09-2008
Posts: 476

Re: CLEO 4 для GTA San Andreas

0@ это адрес, по которому вводится текст из ключа, естественно, что ключ - это 0@v.
А потом переменная 0@ заменяется на адрес в этом опкоде.
А как ты хотел, чтоб текст длинной, например, 20 символов, влез в переменную @v, если там всего 16.

Я делаю так. Правильно? Хочу получить нормальное имя транспорта.

03C0: 1@ = actor $PLAYER_ACTOR car
0@v = car_model 1@ name
0ADE: 0@ = text_by_GXT_entry 0@v
... ???

Offline

#30 26-02-2010 13:37

Viger
Registered: 14-05-2009
Posts: 24

Re: CLEO 4 для GTA San Andreas

@mfisto, не ну чё надо было ещё объяснять! Нее, люди умные сидят, я кстати тоже не тупой, доработал квик опкод, не знаю, буду ли поддержку для линейки 3-ей гта делать, но для СА 1.0 работает нормалём, пришлось тоже скриптинговую систему изучать... Короче хорош оффтопить и понты гнуть, я лишь упомянул что это отключается, да я сам эту хрень долго найти не мог(= И писал я из под XP, так что я и физически не мог посмотреть где отключается - убрал и забыл...

@Alien а что по поводу добавления опкодов? Типа
00B0: allocate_string "HZHZH" at_address 0@
и
00B1: fill_memory_by 0 at_address 0@ size 255
вот типа того? Удобно - обнулить память одним опкодом! Тут в качестве первого параметра - байт к которому будут приравниваться все аддреса побайтово, начиная от заданного адресса ну и заканчивая, там зависимо от размера... Хотя этого можно не делать, я для себя сам напишу! Для других есть write_memory grin А вот первый опкод я считаю просто необходим!

@GTASA нет, не совсем, ещё модель не получил)) Вот так!(не тестировал)
03C0: 1@ = actor $PLAYER_ACTOR car
0441: 1@ = car 1@ model
0ADB: 0@v = car_model 1@ name
0ADE: 0@ = text_by_GXT_entry 0@v
...

Offline

#31 26-02-2010 21:41

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO 4 для GTA San Andreas

@Viger -

Viger wrote:

00B0: allocate_string "HZHZH" at_address 0@

Не совсем понял что делает этот опкод. Выделяет память, записывает в нее строку, возвращает указатель на всю эту радость? Можно же сделать все это руками.

0AC8: 0@ = allocate_memory_size 6
0AD3: string 0@ format "%.*s" 6 "HZHZH"
Viger wrote:

00B1: fill_memory_by 0 at_address 0@ size 255

Добавил такую недокументированную возможность в 0A8C. Когда передается размер отличный от 1, 2 или 4, этот опкод выполняет memset (заполняет блок памяти младшим байтом переданной величины).

@GTASA - поменял формат опкода. Теперь можно делать так, как ты хочешь. Перекачай библиотеку из первого поста. Пример скрипта - простейший carspawner.

{$CLEO}
wait 0
while true
    wait 100
    for 0@ = 400 to 611
        0ADB: 1@v = car_model 0@ name
        if
            0ADC: test_cheat 1@v
        then
            0ADD: spawn_car_with_model 0@ at_player_location
            0ADE: 5@ = text_by_GXT_entry 1@v
            0ACE: show_formatted_text_box "%s spawned..." 5@
        end    
    end
end

@Deji -
Yes, 0ACE can take up to 35 extra params. This limit in all txt-formating opcodes. And agrrement on lines? I think it's better to translate as "string convention". In 2  words, this convention allows to use C-style strings (memory addresses) as scm-strings and SCM-strings as C-style strings.

Offline

#32 26-02-2010 23:06

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: CLEO 4 для GTA San Andreas

(I'll just speak English... Probably more sense there)

I think some sort of sub-string command could be useful.

0000: 0@v substr 1@v from 0 to 7

Useful for getting part of a string. Especially if it's too long. Is there some way to do this already?


Reason is... I have this part of the car spawner code:

if
    002B:   511 >= 11@
then
    000A: 10@ += 1
    000A: 11@ += 1
end
0006: 12@ = 0
for 1@ = 10@ to 11@
    0ADB: 2@v = car_model 1@ name
    0ADE: 2@v = text_by_GXT_entry 2@v
    if
        8847:   not string 2@v empty // @v - doesn't seem to help block out empty strings..
    then
        0AD3: 2@v = format "%s" 2@v
        0AD3: 6@v = format "_UCT%d" 12@
        0ADF: add_dynamic_GXT_entry 6@v text 2@v
        000A: 12@ += 1
    else
        000A: 11@ += 1
    end
end
08DB: set_panel 0@ column 0 header 'DUMMY' data '_UCTSC2' '_UCT0' '_UCT1' '_UCT2' '_UCT3' '_UCT4' '_UCT5' '_UCT6' '_UCT7' '_UCT8' '_UCT9' '_UCTSC1'

However some entries are blank due to the model name being too long to be used as a GXT Entry.

It seems that not all of the car model names refer to a GXT Entry name?:

GXT:
HOTKNIF        // Hotknife

Model:
#HOTKNIFE = 434

EDIT: My problem is fixed... Kinda.

Can the format opcode be used to get part of a string somehow?

Last edited by Deji (27-02-2010 04:14)

Offline

#33 27-02-2010 02:03

GTASA
Registered: 13-09-2008
Posts: 476

Re: CLEO 4 для GTA San Andreas

Alien, у меня все нормально, но вот люди говорят, что игра не запускается со скриптами из CLEO 3. Можно как-то решить эту беду?

Offline

#34 27-02-2010 04:13

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: CLEO 4 для GTA San Andreas

@GTASA

Не верно.

CLEO 3 полностью поддерживает.

Translation / Переводы (English to Russian)

Last edited by Deji (27-02-2010 04:13)

Offline

#35 27-02-2010 06:45

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO 4 для GTA San Andreas

@GTASA - да видел я эти скрипты, которые не работают в CLEO 4. Для меня, честно говоря, секрет, как они и на CLEO 3 работали. Писать надо нормально, вот что...
@Deji - partial string copy:

0@v = "string1 string2"
0AC7: 4@ = var 0@ offset
4@ += 7
0AD3: 5@v = format "%.*s" 6 4@
0ACA: show_text_box 5@v

"string1 [string]2". Part of string from [ to ] is copied in a resultant string (5@v).
See format specification.

Offline

#36 27-02-2010 07:26

besick
Registered: 22-02-2010
Posts: 2

Re: CLEO 4 для GTA San Andreas

Ну приветы сново..
ув Alien можно вопрос :
что это за пароль то такой? как его вводить? пишет неверный пароль..
Напиши поалуйста нормальный пароль на скачку этот пишет что неверный ..

Offline

#37 27-02-2010 08:06

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO 4 для GTA San Andreas

Пароль правильный. Копируй без лидирующего пробела.

Offline

#38 28-02-2010 01:14

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: CLEO 4 для GTA San Andreas

@Alien

Thanks.


EDIT: Never mind. I see you already found and fixed the gosub bug.

Last edited by Deji (28-02-2010 01:15)

Offline

#39 28-02-2010 01:36

GTASA
Registered: 13-09-2008
Posts: 476

Re: CLEO 4 для GTA San Andreas

0AE1: работает некорректно. Не знаю почему. Два других для нахождения объектов и транспорта прекрасно, а этот какой-то не такой. Что-то в нем не так.

А еще эти же два для нахождения объектов и транспорта не работают, если по близости нет объектов. Игра вылетает. Не знаю почему, я ставлю проверку 0@ <> -1, но она не помогает, когда лечу куда-то в лес, меня выкидывает.

===

Слухай, Alien, это капец. С твоим клео 4 и с моим простейшим скриптом вылетает из игры при посадке в машину. Так что в посте #35 ты не прав. А вот мой скрипт:

:START
wait 0 
if                                
0256:   player $PLAYER_CHAR defined
jf @START 
if 
0818:   actor $PLAYER_ACTOR in_air  
jf @START
if
80DF:  not actor $PLAYER_ACTOR driving 
jf @START
if
8491: not  actor $PLAYER_ACTOR has_weapon 46
jf @START
0819: 0@ = actor $PLAYER_ACTOR distance_from_ground 
if
0@ >= 18.0
jf @START
1@ += 2.4
083E: set_actor $PLAYER_ACTOR rotation 1@ 1@ 0.0 while_in_air

0819: 0@ = actor $PLAYER_ACTOR distance_from_ground 
if
0@ = 0.0
then
0A8D: 2@ = read_memory 0xB6F5F0 size 4 virtual_protect 0
2@ += 66
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
if
3@ >= 4
then
0223: set_actor $PLAYER_ACTOR health_to 0 
end
end
jump @START

С ним вылетает при посадке в тачку в CLEO 4, а в CLEO 3 - нет.

Кстати, зря ты удалил из поиска опкодов отрицательные опкоды. Там были те, которых не было в положительных, вот пример: 89DE:   not actor $PLAYER_ACTOR entering_car

Last edited by GTASA (28-02-2010 06:03)

Offline

#40 28-02-2010 09:33

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 937
Website

Re: CLEO 4 для GTA San Andreas

Там были те, которых не было в положительных

Насколько знаю, из любой проверки можно сделать антипроверку, заменив первую цифру 0 в номере опкода на 8 и наоборот (даже если эта антипроверка отсутствует в поиске опкодов).

Offline

#41 28-02-2010 10:29

Viger
Registered: 14-05-2009
Posts: 24

Re: CLEO 4 для GTA San Andreas

Я говорил о таких вот опкодах! Скачиваем квик опкод новый и смотрим! В архиве описаны все опкоды, там для работы со строками, полностью совместимо с клео4 и не мешает работе игры...

http://www.needforrace.ucoz.ru/load/6-1-0-22

0B10: allocate_string "blabla" at_address 0@
0B11: 1@ = string 0@ length
0B12: allocate_int_to_str 1@ at_address 0@
0B13: allocate_string_sum 0@ + 1@v at_address 0@
0B14: 0@ == 1@v // any strings

Offline

#42 28-02-2010 10:57

GTASA
Registered: 13-09-2008
Posts: 476

Re: CLEO 4 для GTA San Andreas

Den_spb, еще раз повторю, вот ты найди теперь опкод 09DE: actor $PLAYER_ACTOR entering_car.
А он был записан только как отрицательный.

Offline

#43 28-02-2010 12:45

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO 4 для GTA San Andreas

@GTASA - ну и при чем же здесь CLEO? Во-первых, у меня все работает, во-вторых, здесь написана полная белиберда.

0A8D: 2@ = read_memory 0xB6F5F0 size 4 virtual_protect 0
2@ += 0x42
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0
if
3@ >= 4
then
0223: set_actor $PLAYER_ACTOR health_to 0 
end

Спасает только то, что это условие может выполниться только в очень редком случае

0819: 0@ = actor $PLAYER_ACTOR distance_from_ground 
if
0@ = 0.0
then
...

С float'ами надо выполнять приближенную проверку равенства.

const
epsilon = 0.01//радиус окрестности
end

0819: 0@ = actor $PLAYER_ACTOR distance_from_ground 
if
0@ < epsilon
then
...

@Viger - все равно не понимаю, что делают твои опкоды и почему нельзя сделать то же самое, используя опкоды форматирования CLEO 4.

Кстати, из opcodes.txt я отрицательные опкоды не вытаскивал. Просто взял не глядя тот файл, который mfisto в этом посте выложил.

GTASA wrote:

А еще эти же два для нахождения объектов и транспорта не работают, если по близости нет объектов. Игра вылетает. Не знаю почему, я ставлю проверку 0@ <> -1, но она не помогает, когда лечу куда-то в лес, меня выкидывает.

Не 0@ <> -1, а 0@ <> 0. А лучше использовать для проверки встроенное условие.

0AE1: работает некорректно. Не знаю почему. Два других для нахождения объектов и транспорта прекрасно, а этот какой-то не такой. Что-то в нем не так.

Что-то не так с чем-то другим.
Пример: все в ужасе убегают от главного героя.

{$CLEO}
//Nobody likes me
0000:
while true
    wait 0
    if
        player.Defined(0)
    then
        actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
        if
            0AE1: 3@ = random_actor_near_point 0@ 1@ 2@ in_radius 10.0 find_next 1 pass_deads 1 //IF and SET
        then
            05DB: AS_actor 3@ flee_from_actor $PLAYER_ACTOR from_origin_radius 50.0 timelimit -1 

        end        
    end
end

Offline

#44 28-02-2010 17:45

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

Re: CLEO 4 для GTA San Andreas

Хееее.

И до меня добрались.

@Alien

Ты лучше реши что нибудь с win 7. А то сохранка то не пашет.

А что касается того файла opcodes.txt, то он был твой Alien, так вот.


I know everything and nothing...

Offline

#45 01-03-2010 06:16

livia
Registered: 01-03-2010
Posts: 1

Re: CLEO 4 для GTA San Andreas

У меня не устанавливается. Я жму close, когда поверх полоски установки написано completed, но папки cleo нету в папке с игрой. Что делать?

Offline

#46 01-03-2010 12:24

Kostyan
Registered: 27-09-2009
Posts: 93

Re: CLEO 4 для GTA San Andreas

livia wrote:

У меня не устанавливается. Я жму close, когда поверх полоски установки написано completed, но папки cleo нету в папке с игрой. Что делать?

Самому создать не вариант?

Offline

#47 02-03-2010 10:39

GTASA
Registered: 13-09-2008
Posts: 476

Re: CLEO 4 для GTA San Andreas

Кстати, на счет windows 7. Возможно ли создать какой-то патч для SA, чтобы игра нормально работала в этой ОС? А то у меня, если зайдешь в меню, а затем обратно в игру, все зависает. Не всегда, но часто.

Offline

#48 02-03-2010 15:07

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: CLEO 4 для GTA San Andreas

Привет? tongue

I was wondering if there was a way to use the last_keypress pool with the show_text_box addresses... On my attempt it writes everything backwards... I've tried quite a few things but I've not been able to find a way to get it to write forwards.

I tried read_memory, but using that made it write only 1 character and a whole load of gibberish if I don't put the size at "4", for some reason.

I've also tried a for loop, checking each possible keypress... But that also had a similar result to above.

Offline

#49 02-03-2010 16:12

Wesser
From: Matera, Italy
Registered: 12-08-2009
Posts: 10

Re: CLEO 4 для GTA San Andreas

Sorry Deji! I have a question too. tongue

I was wondering: is there a way to get the screen xy from 3D coords using CLEO or by making a new opcode? It would be really useful for several purpose. good

Offline

#50 03-03-2010 09:56

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: CLEO 4 для GTA San Andreas

GTASA wrote:

Кстати, на счет windows 7. Возможно ли создать какой-то патч для SA, чтобы игра нормально работала в этой ОС? А то у меня, если зайдешь в меню, а затем обратно в игру, все зависает. Не всегда, но часто.

не замечено.


GIMS developer

Offline

Board footer

Powered by FluxBB