#201 25-05-2015 15:37

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

Re: CLEO для GTA III

Да вылет остался только с клео.


I know everything and nothing...

Offline

#202 25-05-2015 16:35

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

Re: CLEO для GTA III

Вот еще дамп тут как раз та ошибка.


I know everything and nothing...

Offline

#203 25-05-2015 18:28

Sergey81
Registered: 19-12-2008
Posts: 654

Re: CLEO для GTA III

А может причина в другом моде/плагине? Думаю если дело в клео, то я бы смог воспроизвести.

Offline

#204 26-05-2015 07:14

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: CLEO для GTA III

Есть ли возможность "восстановить" следующие опкоды для VC и III:

0681: attach_object 71@ to_car 60@ with_offset 0.5 0.3 0.3 rotation 0.0 0.0 0.0
0682: detach_object 38@(119@,4i) 0.0 0.0 0.0 collision_detection 0
0683: attach_car 208@ to_car 188@ with_offset 0.0 -4.6 0.65 rotation 15.0 0.0 0.0
0684: detach_car 208@ 20.0 180.0 0.0 collision_detection 0
0893: put_trailer 37@ on_cab 34@
07AC: detach_trailer 37@ from_cab 34@

и для III:

0464: put_actor 99@ into_turret_on_car 68@ at_car_offset 266@ 267@ 268@ position 0 shooting_angle_limit 0.0 with_weapon 0
0465: remove_actor $PLAYER_ACTOR from_turret_mode

Offline

#205 26-05-2015 12:37

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

Re: CLEO для GTA III

Для III части 2 последних сразу скажу что не получится воспроизвести. А также прицепы для обеих частей не выйдет.


I know everything and nothing...

Offline

#206 26-05-2015 14:30

Sergey81
Registered: 19-12-2008
Posts: 654

Re: CLEO для GTA III

Да и другие тоже, скорее всего функций нужных нету.

Offline

#207 26-05-2015 17:53

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

Re: CLEO для GTA III

Насчет ошибок в Клео, я тестил и просто КЛЕО без всего: без плагинов итд. У меня вот так, может это связано с моей системой?


I know everything and nothing...

Offline

#208 26-05-2015 18:57

Sergey81
Registered: 19-12-2008
Posts: 654

Re: CLEO для GTA III

Ну если без клео работает все, тогда дело точно в клео, правда я не понимаю в чем тут дело, да и логи какие-то странные.

Offline

#209 27-05-2015 15:06

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

Re: CLEO для GTA III

Все проблема решена! Проблема была не в КЛЕО.


I know everything and nothing...

Offline

#210 02-07-2015 13:47

Sergey81
Registered: 19-12-2008
Posts: 654

Re: CLEO для GTA III

Собственно, выкладываю обновленные версии:
III.CLEObeta.zip 
VC.CLEObeta.zip 
opcodes.zip 
В opcodes.zip просто взяты все опкоды клео 4, плюс добавлены новые(0601-0609), я там немного поменял кое что. Это я в ближайшее время исправлю, чтобы не было путаницы. Новых опкодов из клео4 по сравнению с предыдущей версией не добавилось, за исключением тех, что идут в плагинах. Опкоды из плагинов я тоже сделал через плагины. Также нашел в исходниках опкоды 0B17-0B1D, которых раньше ни в одном ini не видел. Добавил их тоже.

Last edited by Sergey81 (02-07-2015 14:16)

Offline

#211 10-07-2015 20:33

Sergey81
Registered: 19-12-2008
Posts: 654

Re: CLEO для GTA III

Выложил версию 2.0 на гитхаб.
https://github.com/ThirteenAG/III.VC.CLEO/releases
Опкоды, файлы для SB, сдк и тестовый скрипт можно найти там же на гитхабе или здесь: http://gtaforums.com/topic/807185-iiivcrel-cleo-20/
Отличий от прошлой беты немного, мелкие правки и добавлен опкод получения значения брони в гта3.

Offline

#212 11-07-2015 09:44

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: CLEO для GTA III

А новые опкоды только для exe 1.0 или 1.1 тоже поддерживается?

Offline

#213 11-07-2015 10:57

DOG-GHOST
From: Honduras
Registered: 28-02-2010
Posts: 14
Website

Re: CLEO для GTA III

kenking wrote:

А новые опкоды только для exe 1.0 или 1.1 тоже поддерживается?

Supported executables: GTA 3 and VC: v1.0, v1.1, Steam. Note that some(and probably most) scripts aren't compatible with all versions of exe and they'll likely work only on v1.0

http://gtaforums.com/topic/807185-iiivcrel-cleo-20/

Offline

#214 11-07-2015 11:55

Sergey81
Registered: 19-12-2008
Posts: 654

Re: CLEO для GTA III

kenking wrote:

А новые опкоды только для exe 1.0 или 1.1 тоже поддерживается?

Ну да, опкоды доступны для всех версий, Но в скриптах надо не забывать менять какие-то конкретные адреса если есть желание поддерживать несколько версий.
В опкоде game_version возвращаемое значение не поменялось, для стим версии будет 2.

Last edited by Sergey81 (13-07-2015 08:57)

Offline

#215 21-07-2015 02:00

Shag
Registered: 29-03-2010
Posts: 147
Website

Re: CLEO для GTA III

Sergey81> 2 срочных вопроса(хотел на форумсах задать, но, боюсь, мой английский не позволит это сделать нормально):
1) В CLEO для SA была возможность задавать глобальные CLEO-переменные:

0AB3: var 0 = 10

, таких было максимум 1000 и можно было задать значение в одном скрипте, а прочесть - в другом.
Планируется ли нечто подобное в CLEO 2.0 для вайса/трехи?
Если нет, то не мог бы ты подсказать пару пустых адресов для записи байтовых значений? Прост планирую на днях опубликовать большой тематический пак скриптов для Вайса спецом под CLEO 2.0, и там позарез необходимо организовать связь между работой нескольких скриптов.
2) Некоторые опкоды в CLEO 2.0 дублируют CLEO 1.1. Ты писал, что, помимо новых, старые опкоды CLEO 1.1 тоже работают. Для чего тогда дублирование? Или есть отличия?

P.S. Ну, и, разумеется - огромное спасибо за CLEO 2.0))

Last edited by Shag (21-07-2015 03:30)

Offline

#216 21-07-2015 07:43

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

Re: CLEO для GTA III

Обмениваться между скриптами можно через локальные переменные. Находишь скрипт по его имени в памяти переходишь к нужному смещению и получаешь локальную переменную.


I know everything and nothing...

Offline

#217 21-07-2015 13:10

Shag
Registered: 29-03-2010
Posts: 147
Website

Re: CLEO для GTA III

mfisto это слишком сложно и неудобно для меня: постоянно перелопачиваю скрипты вверх ногами, и переменные меняются местами, плюс и так не хватает переменных для работы, а тут еще придется выделять переменные в скриптах. Если же создать отдельный скрипт для переменных, то это даже геморнее, чем просто пустые незанятые адреса использовать. Поэтому я про них и спрашивал hmm

Offline

#218 21-07-2015 14:21

Sergey81
Registered: 19-12-2008
Posts: 654

Re: CLEO для GTA III

Не вижу смысла в этих опкодах, поэтому их и не добавлял. Как вариант можно выделить память(через hex...end) или опкод в одном скрипте, адрес этого буфера записать куда-нибудь(в неиспользуемую память или же получать как выше было отмечено через переменную), а потом этот адрес использовать из любого скрипта.

Некоторые опкоды в CLEO 2.0 дублируют CLEO 1.1. Ты писал, что, помимо новых, старые опкоды CLEO 1.1 тоже работают. Для чего тогда дублирование? Или есть отличия?

Отличий нет, я только хотел чтобы во всех трех играх были одинаковые номера опкодов. Иначе не удобно, когда пишешь скрипт сразу под 3 игры, перебивать номера опкодов.

Offline

#219 22-07-2015 06:52

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: CLEO для GTA III

@Shag, можно попробовать запись значения переменной одного скрипта в ini файл и чтение этого значения другим скриптом, вот только, как это сопоставится с очерёдностью выполнения скриптов.
А, кстати, вот и вопрос: в каком порядке загружаются и выполняются скрипты при, допустим, одном wait 0 в каждом скрипте?

Offline

#220 22-07-2015 12:56

Sergey81
Registered: 19-12-2008
Posts: 654

Re: CLEO для GTA III

kenking wrote:

@Shag, можно попробовать запись значения переменной одного скрипта в ini файл и чтение этого значения другим скриптом, вот только, как это сопоставится с очерёдностью выполнения скриптов.

Я бы не рекомендовал так делать.

kenking wrote:

А, кстати, вот и вопрос: в каком порядке загружаются и выполняются скрипты при, допустим, одном wait 0 в каждом скрипте?

Ну загружаются они по алфавиту, можно в логе посмотреть, выполняются наверно в том же порядке.

Сегодня обновил обе версии клео, добавлен опкод 0673 отсюда - http://www.gtagarage.com/mods/show.php?id=2508
Исправленный плагин(убрана реализация опкода) с исходником можно скачать тут - https://www.sendspace.com/file/rerz5r

Offline

#221 22-07-2015 14:44

Shag
Registered: 29-03-2010
Posts: 147
Website

Re: CLEO для GTA III

Sergey81 wrote:

Не вижу смысла в этих опкодах, поэтому их и не добавлял. Как вариант можно выделить память(через hex...end) или опкод в одном скрипте, адрес этого буфера записать куда-нибудь(в неиспользуемую память или же получать как выше было отмечено через переменную), а потом этот адрес использовать из любого скрипта.

Вот мне и хотелось бы узнать парочку адресов из неиспользуемой памяти.
Я вижу, всё же придется пойти сложным способом, но проблема в том, что я не понимаю, как это сделать(я нуб в работе с памятью). Мне нужно 5 адресов для записи integer значений, может кто-то помочь с реализацией этого?

kenking wrote:

@Shag, можно попробовать запись значения переменной одного скрипта в ini файл и чтение этого значения другим скриптом, вот только, как это сопоставится с очерёдностью выполнения скриптов.

Увы, в моём случае это будет такая большая нагрузка на игру(постоянные чтение/запись), что всё будет тормозить и/или неправильно работать. Поэтому нужно реализовать в памяти игры...

Sergey81 wrote:

Сегодня обновил обе версии клео, добавлен опкод 0673 отсюда

За это - отдельное огромное спасибо(давно просил тут и еще на паре форумах это сделать)!!! Наконец появилась возможность нормально добавлять новые анимы, а не как это делал я(загружая новые анимы в старых ifp под новыми названиями, чтобы не заменять старые ifp физически)

Last edited by Shag (22-07-2015 14:46)

Offline

#222 22-07-2015 21:35

Sergey81
Registered: 19-12-2008
Posts: 654

Re: CLEO для GTA III

Shag wrote:

Вот мне и хотелось бы узнать парочку адресов из неиспользуемой памяти.
Я вижу, всё же придется пойти сложным способом, но проблема в том, что я не понимаю, как это сделать(я нуб в работе с памятью). Мне нужно 5 адресов для записи integer значений, может кто-то помочь с реализацией этого?

Открой базу или экзешник в IDA, найди к примеру строчку "align 10h" в любом месте, вот здесь и будет нужный тебе адрес. Но все равно я не пойму в чем проблема сделать через переменную? К примеру как-нибудь так:

{$CLEO}
//scr1.cs
0000:
0AC8: 0@ = allocate_memory_size 260
0A8C: write_memory 0@ size 4 value 123 virtual_protect 0

while true
wait 0
///
end


{$CLEO}
//scr2.cs
0000:
while true
wait 0
0AB1: call_scm_func @__VarToOffset 1 varnumber 0 result 0@
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
03F0: enable_text_draw 1 
0609: show_formatted_text_position 50.0 50.0 text "%d" 0@
end

:__VarToOffset
{
0AB1: call_scm_func @__VarToOffset 1 varnumber 6 result 0@
}
0AAA: 13@ = thread 'scr1.cs' pointer
if
13@ <> 0
then
13@ += 0x30
0@ *= 4
005A: 13@ += 0@ // address of the local variable 
0AB2: ret 1 13@
else
0AB2: ret 1 0
end

EPm4YUu.jpg

Offline

#223 22-07-2015 22:09

Shag
Registered: 29-03-2010
Posts: 147
Website

Re: CLEO для GTA III

Sergey81 wrote:

в чем проблема сделать через переменную? К примеру как-нибудь так:

Хорошо, а как в этом коде сделать 2 переменных? Или придется для каждой переменной создавать новый скрипт?

Offline

#224 23-07-2015 07:16

Sergey81
Registered: 19-12-2008
Posts: 654

Re: CLEO для GTA III

Shag wrote:
Sergey81 wrote:

в чем проблема сделать через переменную? К примеру как-нибудь так:

Хорошо, а как в этом коде сделать 2 переменных? Или придется для каждой переменной создавать новый скрипт?

0AC8: 0@ = allocate_memory_size 260
0A8C: write_memory 0@ size 4 value 123 virtual_protect 0 //1
0A8E: 1@ = 0@ += 0x4 // int
0A8C: write_memory 1@ size 4 value 345 virtual_protect 0 //2
0A8E: 1@ = 0@ += 0x8 // int
0A8C: write_memory 1@ size 4 value 567 virtual_protect 0 //3
....

Чтение аналогично.

Offline

#225 23-07-2015 14:59

Shag
Registered: 29-03-2010
Posts: 147
Website

Re: CLEO для GTA III

Sergey81 wrote:
0AC8: 0@ = allocate_memory_size 260
0A8C: write_memory 0@ size 4 value 123 virtual_protect 0 //1
0A8E: 1@ = 0@ += 0x4 // int
0A8C: write_memory 1@ size 4 value 345 virtual_protect 0 //2
0A8E: 1@ = 0@ += 0x8 // int
0A8C: write_memory 1@ size 4 value 567 virtual_protect 0 //3
....

Чтение аналогично.

Т.е. чтение этих трех значений будет выглядеть так?

{$CLEO}
//scr2.cs
0000:
while true
wait 0
0AB1: call_scm_func @__VarToOffset 1 varnumber 0 result 0@
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
03F0: enable_text_draw 1 
0609: show_formatted_text_position 50.0 50.0 text "%d" 0@   //1

1@ = 0x4
0AB1: call_scm_func @__VarToOffset 1 varnumber 1 1@ result 0@
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
03F0: enable_text_draw 1 
0609: show_formatted_text_position 50.0 50.0 text "%d" 0@   //2

1@ = 0x8
0AB1: call_scm_func @__VarToOffset 1 varnumber 1 1@ result 0@
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
03F0: enable_text_draw 1 
0609: show_formatted_text_position 50.0 50.0 text "%d" 0@   //3


end
 
:__VarToOffset
{
0AB1: call_scm_func @__VarToOffset 1 varnumber 6 result 0@
}
0AAA: 13@ = thread 'scr1.cs' pointer
if
13@ <> 0
then
13@ += 0x30
0@ *= 4
005A: 13@ += 0@ // address of the local variable 
0AB2: ret 1 13@
else
0AB2: ret 1 0
end

Я просто не понимаю, откуда берется

0AC8: 0@ = allocate_memory_size 260

, а также

13@ += 0x30
0@ *= 4
005A: 13@ += 0@ // address of the local variable 

, ведь в "__VarToOffset" не задается 0@, но операции с ним идут

Last edited by Shag (23-07-2015 15:29)

Offline

Board footer

Powered by FluxBB