You are not logged in.
0AC8 выделяет блок памяти указанного размера. Полученный буфер может использоваться как угодно, например, для хранения строк.
0AB1. Данный опкод вызывает код из текущего скрипта (по аналогии с gosub), передает в него параметры и получает результат. Передаваемые параметры последовательно (то есть в прямом порядке) копируются в область локальных переменных скрипта, остальные локальные перменные обнуляются. Затем поток переходит на указанную метку, выполняет код по данной метке и возвращается после опкода 0AB2.
Почитай справку к опкодам и scm функциям.
0AB1: call_scm_func @__VarToOffset 1 varnumber 0 result 0@ // получили указатель на переменную 0@ в scr1 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 // прочитали её значение, это значение - указатель на блок памяти из опкода 0AC8. //0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 // здесь либо читаем значение, расположенное в начале этого блока (со смещением 0) //либо делаем по другому 0A8E: 1@ = 0@ += 0x0 // int 0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0 // 1 0A8E: 1@ = 0@ += 0x4 // int 0A8D: 3@ = read_memory 1@ size 4 virtual_protect 0 // 2 0A8E: 1@ = 0@ += 0x8 // int 0A8D: 4@ = read_memory 1@ size 4 virtual_protect 0 // 3 03F0: enable_text_draw 1 0609: show_formatted_text_position 50.0 50.0 text "%d %d %d" 2@ 3@ 4@
Last edited by Sergey81 (23-07-2015 15:39)
Offline
Спс, теперь понятно.
Почитай справку к опкодам и scm функциям.
У меня в справке SB(последний SB 3.2.2) после опкода 0ABF нет описаний, а где достать новую справку - хз(а на Opcode Database про 0AC8 написано почти то же самое, что и ты написал, но там из-за воды я не понял, когда прочел). Про 0AB1(бывший 05F5) я уже знал, просто немного ошибся при написании поста.
Last edited by Shag (23-07-2015 16:10)
Offline
Я нашел chm файл в старой версии клео 4(4.1.1.30) - http://cleo.li/download.html
Можно открыть установщик через 7zip и просто вытащить его оттуда.
В новой версии его вроде не вкладывают, но точно не знаю.
Offline
Спс еще раз
Ну и не срочные вопросы:
1)После выделения памяти в "scr1.cs" можно ли ниже использовать этот скрипт для другого кода, или в этом скрипте не должно быть больше ничего лишнего? Другими словами - будут ли последствия, если я вставлю этот код выделения памяти в начало стороннего скрипта?
2)планируются ли новые версии? Если да, то будет ли наконец реализована работа со звуком(проигрывание mp3 и воспроизведение всех звуков из sfx.raw, а не каких-то отдельных, как это реализовано в опкодах 018С и 018D)?
Last edited by Shag (23-07-2015 18:01)
Offline
1)После выделения памяти в "scr1.cs" можно ли ниже использовать этот скрипт для другого кода
Почему бы и нет?
2)будет ли наконец реализована работа со звуком(проигрывание mp3 и воспроизведение всех звуков из sfx.raw, а не каких-то отдельных, как это реализовано в опкодах 018С и 018D)?
Пока не уверен, аудио из клео 4 может и будет потом, стандартные звуки - не знаю.
Last edited by Sergey81 (23-07-2015 18:28)
Offline
В GTA3 опкоды
04C3: create_coordinate 0@ 1@ 2@ from_car 10@ offset 0.0 -20.0 0.0 ;0407 in VC 04C4: create_coordinate 0@ 1@ 2@ from_actor $PLAYER_ACTOR offset 0.0 1.2 0.0
- вместо искомых координат возвращают какую-то ахинею. Опкод
04C2: create_coordinate 0@ 1@ 2@ from_object 11@ offset -0.277 -16.662 3.152 ;0400 in VC
- не тестил, но скорее всего там то же самое
P.S. Очень жду фикса, т.к. замучался уже извращаться с косинусами и синусами..
Last edited by Shag (03-08-2015 04:16)
Offline
Спасибо. Еще 2 вопроса:
1)Что изменилось в новой версии CLEO для Вайса?
2)Где можно достать базу адресов Трехи(гугл не помог), в частности - оффсеты страктов транспорта, людей и объектов?
Интересует конкретно Трешные аналоги оффсетов транспорта(из Вайса):
+0x70 - [float] - x push
+0x74 - [float] - y push
+0x78 - [float] - z push
+0x7C - [float] - X turn speed
+0x80 - [float] - Y turn speed
+0x84 - [float] - Z turn speed
В трёхе они не работают...
Last edited by Shag (03-08-2015 23:01)
Offline
Т.к. второй вопрос горел - ответ нашел методом тыка:
+0x78 - [float] - x push
+0x7C - [float] - y push
+0x80 - [float] - z push
+0x84 - [float] - X turn speed
+0x88 - [float] - Y turn speed
+0x8C - [float] - Z turn speed
Но насчет CLEO для вайса всё еще интересно узнать
Offline
Те опкоды я исправил, а в новой версии для вайса ничего нового, кроме того, что надпись '0 scripts' не показывается.
База для gta3 лежит на паблике, но структур там практически нет.
Last edited by Sergey81 (04-08-2015 12:54)
Offline
Те опкоды я исправил, а в новой версии для вайса ничего нового, кроме того, что надпись '0 scripts' не показывается.
Какая текущая версия библиотеки? И ссылку на неё можно, а то, что-то я в этих обновлениях несколько запутался
Offline
kenking
http://cleo.li
на главной ссылки
Offline
Небольшой баг в новом CLEO(в 1.1.1.7 и ранее не наблюдается):
В 11 утра при погоде 0 (SUNNY в timecyc.dat) (чит APLEASANTDAY) изменяется освещение педов и авто (Amb_Obj в timecyc.dat) на бирюзовое:
http://fastpic.ru/view/72/2015/0809/68c … 9.jpg.html
Другие погоды, например, 4 (EXTRASUNNY в timecyc.dat) (чит ALOVELYDAY) это не затрагивает:
http://fastpic.ru/view/69/2015/0809/5b0 … 7.jpg.html
Баг проявляется только в 11 утра и только при погоде SUNNY, на чистой сборке вайса с единственным установленным плагином - VC.CLEO.asi, даже при отсутствии папки CLEO.
На всякий случай - вот адресок погоды: 0xA10A2E
P.S. Еще немножко оффтопа:
Sergey81, есть пара проблем с твоим новым Widescreenfix(последним, скачанным с твоего сайта, который с прозрачным фоном меню) для вайса:
1)В старой версии Widescreenfix фиксилась мышка, теперь же она снова не работает.
2)Не работает запись float значений в 0x40104A(чтобы менять FOV) - FOV не выходит менять FOV при любых настройках в GTAVC_widescreen_fix.ini
То, что делает плагин с FOV - работает, а вот записать свое значение - нет.
Last edited by Shag (09-08-2015 16:30)
Offline
Баг проявляется только в 11 утра и только при погоде SUNNY, на чистой сборке вайса с единственным установленным плагином - VC.CLEO.asi, даже при отсутствии папки CLEO.
Спасибо, вчера выкладывал новую версию, но этого сообщения не видел. Оказывается там надо было еще один адресок пропатчить. Перезалил исправленную v2.0.0.3 на сайт.
Также выложил свои старые скрипты в пределанном виде сюда - http://13.sannybuilder.com/cleo-scripts
Sergey81, есть пара проблем с твоим новым Widescreenfix(последним, скачанным с твоего сайта, который с прозрачным фоном меню) для вайса:
Для мышки надо скачать SilentPatch, а FOV действительно перестал работать, сейчас перезалью исправленную версию.
Offline
Для мышки надо скачать SilentPatch, а FOV действительно перестал работать, сейчас перезалью исправленную версию.
Как я ни пытался, но я не смог решить базовую проблему SilentPatch: он убирает стандартные "лаги" в работе скриптов, которые нужны, как воздух, многим скриптам, а именно: стандартный лок ФПС в 30 кадров делает так, что задержка, описываемая в скриптах, как "wait 0 ms" по сути является "wait 33 ms" (1000мс/30фпс), и многие скрипты на этом подвязаны(включая и мой), а SilentPatch делает так, что "wait 0 ms" превращается в "wait RANDOM 0-33 ms", т.е., в зависимости от мощностей компа, задержка будет от "0" до 33, и, если скрипт сильно от этого зависит(как мой, работающий с физикой авто) - он будет работать нестабильно. Есть вариант заменить везде в скриптах "wait 0 ms" на "wait 33 ms", но в этом случае иногда "33" будет превращаться в "33-66", т.к. игра, опять-таки, становится нестабильной.
Да и зачем подстраивать столько всего под один кривой SilentPatch?(люди жалуются на множество ошибок в этом патче, в т.ч. - неадекватную мышку, лол).
Да - есть в его патче пара клевых фич, но вот со скриптовыми задержками он перегнул палку: в оригинале все специально было сделано так, и "фиксить" это не нужно. Silent даже не дал игрокам выбора(файл настройки), чтобы они могли выключить потенциальный мусор в патче.
Всвязи с чем, прошу: верни фикс мыши в Widescreenfix, ПОЖАЛУЙСТА!!!
Несколько проектов сдохнут без этого
Last edited by Shag (12-01-2016 03:23)
Offline
Всё не было времени протестировать новые версии CLEO для VC и III. И вот решил таки это сделать. Установлены версии 1.1.1.7 и 1.0.1.7 соответственно. Но, к сожалению, не смог обновить версии. Игра выкидывает на рабочий стол в то время, когда должно на экране появляться главное меню. Понимаю, что где-то я конкретно торможу, но вот, где?
Просьба описать по пунктам процесс обновления CLEO для VC и III с версий 1.1.1.7 и 1.0.1.7 до 2.0.0.4 (пробовал сначала обновить до версии 2.0.0.3 - результат тот же).
Offline
Всё не было времени протестировать новые версии CLEO для VC и III. И вот решил таки это сделать. Установлены версии 1.1.1.7 и 1.0.1.7 соответственно. Но, к сожалению, не смог обновить версии. Игра выкидывает на рабочий стол в то время, когда должно на экране появляться главное меню. Понимаю, что где-то я конкретно торможу, но вот, где?
Просьба описать по пунктам процесс обновления CLEO для VC и III с версий 1.1.1.7 и 1.0.1.7 до 2.0.0.4 (пробовал сначала обновить до версии 2.0.0.3 - результат тот же).
Там asi должен иметь оригинальное название. Просто удаляешь старый CLEO.asi и ставишь новый VC.CLEO.asi
P.S. Sergey81, ОГРОМНОЕ СПАСИБО! Скачал новую версию - теперь всё снова фиксит, как и раньше:)
Last edited by Shag (24-02-2016 17:51)
Offline
Там asi должен иметь оригинальное название. Просто удаляешь старый CLEO.asi и ставишь новый VC.CLEO.asi
Пробовал и так. Результат, к сожалению, тот же - игра выкидывает на рабочий стол в то время, когда должно на экране появляться главное меню. И в VC, и в GTA III.
Может быть дело в версии винды? У меня XP SP3. Кто-нибудь проверял на XP? Или я тут один такой "динозавр"?
Offline
На XP работать не будет, так как скомпилировано все без поддержки XP. Возможно если перекомпилировать с _xp то заработает, но я не проверял.
Offline
На XP работать не будет, так как скомпилировано все без поддержки XP. Возможно если перекомпилировать с _xp то заработает, но я не проверял.
А что ж так-то? Это не есть хорошо... Просьба это дело исправить.
Offline
А что ж так-то? Это не есть хорошо... Просьба это дело исправить.
Кто-то на gtaforums.com вроде тестил клео с v140_xp, но все равно не заработало. Я лично не проверял и не хочу этим заниматься. Если есть visual studio, можешь сам попытаться.
Last edited by Sergey81 (26-02-2016 17:12)
Offline
kenking
Поддержкой XP нынче не занимается даже сам Microsoft. Рекомендую рассмотреть вариант перехода на более современную систему.
Offline
хелп я вот скрипт создал но когда я его проверяю gta тупо зависает после загрузки
я новичок
{$CLEO .cs} 0001: wait 100 ms :START 00D6: if 0256: player $PLAYER_CHAR defined 004D: jump_if_false @RST 00D6: if 05EE: key_pressed 66 004D: jump_if_false @RST :KEY66 05EE: key_pressed 66 004D: jump_if_false @SAVEPOS 0001: wait 0 ms 0002: jump @KEY66 :SAVEPOS 0054: store_player $PLAYER_CHAR position_to $postp1 $postp2 $postp3 0002: jump @RST :KEYS78 00D6: if 05EE: key_pressed 78 004D: jump_if_false @RST :KEY78 05EE: key_pressed 78 004D: jump_if_false @TPTOPOS 0001: wait 0 ms 0002: jump @KEY78 :TPTOPOS 0055: put_player $PLAYER_CHAR at $postp1 $postp2 $postp3 0002: jump @RST :RST 0002: jump @START
Last edited by kostya (16-07-2016 18:37)
Offline
хелп я вот скрипт создал но когда я его проверяю gta тупо зависает после загрузки
я новичок
{$CLEO .cs}0001: wait 100 ms
:START
00D6: if
0256: player $PLAYER_CHAR defined
004D: jump_if_false @RST
00D6: if
05EE: key_pressed 66
004D: jump_if_false @RST:KEY66
05EE: key_pressed 66
004D: jump_if_false @SAVEPOS
0001: wait 0 ms
0002: jump @KEY66:SAVEPOS
0054: store_player $PLAYER_CHAR position_to $postp1 $postp2 $postp3
0002: jump @RST:KEYS78
00D6: if
05EE: key_pressed 78
004D: jump_if_false @RST:KEY78
05EE: key_pressed 78
004D: jump_if_false @TPTOPOS
0001: wait 0 ms
0002: jump @KEY78:TPTOPOS
0055: put_player $PLAYER_CHAR at $postp1 $postp2 $postp3
0002: jump @RST:RST
0002: jump @START
твой код в оптимизированном и исправленном варианте будет выглядеть так
{$CLEO .cs} 0000: :START wait 0 if and 05EE: key_pressed 66 0256: player $PLAYER_CHAR defined 004D: jump_if_false @START 0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@ wait 1000 :WAIT_KEY wait 0 85EE: not key_pressed 66 jf @STEP jump @WAIT_KEY :STEP 0055: put_player $PLAYER_CHAR at 1@ 2@ 3@ :WAIT_KEY_2 wait 0 05EE: key_pressed 66 jf @START jump @WAIT_KEY_2
Пы.Сы.
ошибка из-за беск. цикла, на будущее ставь wait
Last edited by Goldfish (16-07-2016 19:48)
Offline
kostya wrote:хелп я вот скрипт создал но когда я его проверяю gta тупо зависает после загрузки
я новичок
{$CLEO .cs}0001: wait 100 ms
:START
00D6: if
0256: player $PLAYER_CHAR defined
004D: jump_if_false @RST
00D6: if
05EE: key_pressed 66
004D: jump_if_false @RST:KEY66
05EE: key_pressed 66
004D: jump_if_false @SAVEPOS
0001: wait 0 ms
0002: jump @KEY66:SAVEPOS
0054: store_player $PLAYER_CHAR position_to $postp1 $postp2 $postp3
0002: jump @RST:KEYS78
00D6: if
05EE: key_pressed 78
004D: jump_if_false @RST:KEY78
05EE: key_pressed 78
004D: jump_if_false @TPTOPOS
0001: wait 0 ms
0002: jump @KEY78:TPTOPOS
0055: put_player $PLAYER_CHAR at $postp1 $postp2 $postp3
0002: jump @RST:RST
0002: jump @STARTтвой код в оптимизированном и исправленном варианте будет выглядеть так
{$CLEO .cs} 0000: :START wait 0 if and 05EE: key_pressed 66 0256: player $PLAYER_CHAR defined 004D: jump_if_false @START 0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@ wait 1000 :WAIT_KEY wait 0 85EE: not key_pressed 66 jf @STEP jump @WAIT_KEY :STEP 0055: put_player $PLAYER_CHAR at 1@ 2@ 3@ :WAIT_KEY_2 wait 0 05EE: key_pressed 66 jf @START jump @WAIT_KEY_2Пы.Сы.
ошибка из-за беск. цикла, на будущее ставь wait
Спасибо
Last edited by kostya (17-07-2016 15:51)
Offline