#1101 18-07-2009 19:29

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

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

Offline

#1102 18-07-2009 19:54

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

Re: Один вопрос

Возможно, я точно не знаю, текстурой.

Offline

#1103 20-07-2009 20:16

Drift_Legend
From: Феодосия
Registered: 21-06-2009
Posts: 18

Re: Один вопрос

Подскажите, пожалуйста, почему при попытке декомпиляции некоторых cleo-скриптов появляется ошибка декомпиляции. Например, в сообщении СБ пишет: "Sanny Builder 3 - decompileк error", а ниже: "Неизвестный параметр 9Fh по адресу 791." Что это за ошибка и существует ли способ защитить свой скрипт от декомпиляции?

И второй вопрос: как с помощью клео-скрипта вывести на экран свой (любой, какой вздумается) текст? Заранее благодарен

Offline

#1104 20-07-2009 21:05

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

Re: Один вопрос

И второй вопрос: как с помощью клео-скрипта вывести на экран свой (любой, какой вздумается) текст? Заранее благодарен

Создавай в папке cleo директорию CLEO_TEXT и туда положи файл с любым названием (расширение - .fxt).
И не забудь поставить перед этим последнюю версию CLEO, а так же установить плагин GxtHook.
Потом просто вызывай текст как обычно указав на свой ключ.
Например:

Вид файла (например) special.fxt:
FUNC1 This is test pre-formatted text. All okay!

Offline

#1105 20-07-2009 23:47

Drift_Legend
From: Феодосия
Registered: 21-06-2009
Posts: 18

Re: Один вопрос

О, спасибо огромное! Получилось! ))) только текст появился в левом верхнем углу, а можно сделать, чтоб текст был посередине экрана и имел вид, например, как  "MISSION PASSED" или что-то в этом роде. Большими буквами, а не типа статуса "Вы проголодались и начинаете терять энергию" как сейчас)))

Offline

#1106 21-07-2009 10:22

Alien
Registered: 12-10-2008
Posts: 564

Re: Один вопрос

@Drift_Legend - есть еще способ.
Есть ряд функций, работающих не с GXT-ключами, а непосредственно со строками. Вот что мне удалось найти (слева - имя функции, справа - ее адрес):

const
ShowTextBox = 0x588BE0
ShowTextBoxWithNumbers = 0x69DE90
ShowStyledText = 0x69F2B0
ShowStyledTextWithNumbers = 0x69E5F0
ShowTextLowPriority = 0x69F0B0
ShowTextLowPriorityWithNumbers = 0x69E360
ShowTextHighPriority = 0x69F1E0
ShowTextHighPriorityWithNumbers = 0x69E4E0
end

Описание параметров:

var ShowTextBox: procedure(Text: PChar; Flag1, Infinite, Flag2: Byte); cdecl;

    ShowStyledTextWithNumbers: procedure(Text: PChar; time:LongInt;style:Word;
      number1,number2,number3,number4,number5,number6:LongWord); cdecl;

    ShowTextLowPriorityWithNumbers: procedure(Text: PChar; time:LongInt;unk:Word;
      number1,number2,number3,number4,number5,number6:LongWord;Flag:byte); cdecl;

    ShowTextHighPriorityWithNumbers: procedure(Text: PChar; time:LongInt;unk:Word;
      number1,number2,number3,number4,number5,number6:LongWord;Flag:byte); cdecl;

    ShowTextBoxWithNumbers: procedure(Text: PChar;number1,number2,number3,
      number4mnumber5,number6:LongWord;Offset:LongInt); cdecl;

    ShowTextLowPriority: procedure(Text: PChar;time:LongInt;Flag1:Word;Flag2:Byte); cdecl;

    ShowTextHighPriority: procedure(Text: PChar;time:LongInt;Flag1:Word;Flag2:Byte); cdecl;

    ShowStyledText: procedure(Text: PChar; time:LongInt;style:Word); cdecl;

На синтаксис не обращай внимания, это паскаль. Переформатировать лень.
Использование в cleo (все параметры передаются в обратном порядке):

const
ShowTextBox = 0x588BE0
ShowTextBoxWithNumbers = 0x69DE90
ShowStyledText = 0x69F2B0
ShowStyledTextWithNumbers = 0x69E5F0
ShowTextLowPriority = 0x69F0B0
ShowTextLowPriorityWithNumbers = 0x69E360
ShowTextHighPriority = 0x69F1E0
ShowTextHighPriorityWithNumbers = 0x69E4E0
end
0A9F: 30@ = current_thread_pointer   
30@ += 0x10
0A8D: 31@ = read_memory 30@ size 4 virtual_protect 0
0062: 31@ -= @Text    //получение адреса метки @Text, которая также является указателем на строку
...
0AA5: call ShowStyledText num_params 3 pop 3 style 0 time 1000 PChar 31@
...
:Text
hex
"Your" 20 "text" 20 "here." 00
end

PS: в функциях ...WithNumbers, если надо использовать меньше 6 номеров передавай -1 в качестве неиспользуемых.

Last edited by Alien (03-09-2009 12:24)

Offline

#1107 22-07-2009 08:46

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

Re: Один вопрос

На мой вопрос ответьте плизз!!! Можно ли записать в переменную анимацию игрока??? Мне надо для скрипта чтобы всё замедлялось, а сиджей нет...
Тоесть я замедляю время и всё время к текущей анимации применяю такой опкод:
0393: actor $PLAYER_ACTOR perform_animation 1@s at 5.0 times_normal_rate
тоесть, замедляю сначала время в 5 раз, а потом увеличиваю скорость текущей анимации сиджея в 5 раз...по идее должно работать)))
Кстати пробовал вот так:
1@s = actor.animation ($PLAYER_ACTOR)
но при компиляции вибивало ошибку....такого опкода судя по всему нет, но возможно можно через игровую память прочитать?))

Last edited by BoPoH (22-07-2009 08:50)


userbar.png

Offline

#1108 22-07-2009 10:18

Alien
Registered: 12-10-2008
Posts: 564

Re: Один вопрос

Игра не оперирует именами анимаций. Анимации, как и gxt-ключи, определяются контрольной суммой crc32 - некоторой функцией, принимающей массив неопределенной длины и возвращающей значение фиксированной длины - 32 бита. При помощи этой функции имени анимации однозначно ставится в соответствие некоторое число. Обратное не всегда верно, но вероятность случайного совпадения контрольных сумм двух разных строк очень мала. Как в мат. статистике: мала вероятность совершения ошибки второго рода - принятия гипотезы при условии, что она ложна.
Это я типа рассказывал о хэшировании (а точнее сам пытался разобраться=))
Короче говоря, ты не сможешь работать с именем анимации в ее первозданном виде.

Для опкода 0393 можно задавать абсолютно произвольную строку предпоследним параметром, если занопить 6 байтов начиная с адреса 0x484299 (Не проверял).

0A8C: write_memory 0x48429C size 4 value 0x90909090 virtual_protect 1
0A8C: write_memory 0x48429E size 2 value 0x9090 virtual_protect 1

Last edited by Alien (22-07-2009 10:49)

Offline

#1109 22-07-2009 14:10

Daeman
From: }{абаровск
Registered: 08-05-2009
Posts: 70

Re: Один вопрос

Все уже давно хотят сделать скрипт лечения, полноценный, но никому этого ещё не удавалось т.к. в их скриптах не было самого оживления человека.
Я очередной, кто хочет это сделать. smile
Я тут подумал: если медики оживляют людей, значит, это возможно и ГГ. Начинать надо этот клубок, по-моему, непосредственно с медиков. Но тут возникает загвоздка: где хранится скрипт медиков? Очевидно, в самом мэйне его нет, т.к. скриптеры давно бы его уже обнаружили. Так где же этот скрипт? Кто-нибудь его находил?

Offline

#1110 22-07-2009 14:18

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

Re: Один вопрос

Что ты этим хотел сказать:
Для опкода 0393 можно задавать абсолютно произвольную строку предпоследним параметром, если занопить 6 байтов начиная с адреса 0x484299 (Не проверял).?????
Тоесть если я поставлю эти 2 опкода:

0A8C: write_memory 0x48429C size 4 value 0x90909090 virtual_protect 1
0A8C: write_memory 0x48429E size 2 value 0x9090 virtual_protect 1

А в предпоследнем значении опкода 0393 поставлю например -1 то за -1 будет приниматься текущая анимация?))) Если нет, то объясни подробней что ты хотел сказать.


userbar.png

Offline

#1111 22-07-2009 18:22

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Создан на экране текст1 и текст2. Текст1 на некотором расстоянии от текст2.
Как сделать, чтобы текст2 смещается в сторону в зависимости от длины слова в текст1?

Offline

#1112 23-07-2009 07:54

BoPoH
From: Каушаны
Registered: 21-02-2009
Posts: 77

Re: Один вопрос

Нууу....эт врядли реально, т.к. нельзя узнать длину текста))


userbar.png

Offline

#1113 23-07-2009 08:18

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Какой адрес памяти открывает такую обзорную карту? (Меню - Карта - Z).

4bc525748ea7t.jpg

Offline

#1114 25-07-2009 21:43

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

Re: Один вопрос

Daeman wrote:

Все уже давно хотят сделать скрипт лечения, полноценный, но никому этого ещё не удавалось т.к. в их скриптах не было самого оживления человека.
Я очередной, кто хочет это сделать. smile
Я тут подумал: если медики оживляют людей, значит, это возможно и ГГ. Начинать надо этот клубок, по-моему, непосредственно с медиков. Но тут возникает загвоздка: где хранится скрипт медиков? Очевидно, в самом мэйне его нет, т.к. скриптеры давно бы его уже обнаружили. Так где же этот скрипт? Кто-нибудь его находил?

Этот "скрипт" зашит в gta_sa.exe

Offline

#1115 26-07-2009 11:17

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

Re: Один вопрос

Daeman wrote:

Все уже давно хотят сделать скрипт лечения, полноценный, но никому этого ещё не удавалось т.к. в их скриптах не было самого оживления человека.
Я очередной, кто хочет это сделать. smile
Я тут подумал: если медики оживляют людей, значит, это возможно и ГГ. Начинать надо этот клубок, по-моему, непосредственно с медиков. Но тут возникает загвоздка: где хранится скрипт медиков? Очевидно, в самом мэйне его нет, т.к. скриптеры давно бы его уже обнаружили. Так где же этот скрипт? Кто-нибудь его находил?

А в чем проблема? Просто проигрывай анимацию лечения, которую используют медики и всё.


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#1116 26-07-2009 13:40

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

Re: Один вопрос

GTASA wrote:

Какой адрес памяти открывает такую обзорную карту? (Меню - Карта - Z).

1) отними управление у игрока
2) закрась экран чёрным цветом (опкод 038E)
3) выведи на экран текстуру MAP из models/fronten2.txd
4) выведи все нужные тебе надписи и цифры (опкоды 033F 0340 033E 045A 045B)



З.Ы. советую спросить лично Александра, т.к. он делал редактор меню и знает адреса


GIMS developer

Offline

#1117 26-07-2009 13:59

Gyr
From: Серпухов
Registered: 03-02-2009
Posts: 246
Website

Re: Один вопрос

3Doomer wrote:
GTASA wrote:

Какой адрес памяти открывает такую обзорную карту? (Меню - Карта - Z).

1) отними управление у игрока
2) закрась экран чёрным цветом (опкод 038E)
3) выведи на экран текстуру MAP из models/fronten2.txd
4) выведи все нужные тебе надписи и цифры (опкоды 033F 0340 033E 045A 045B)
З.Ы. советую спросить лично Александра, т.к. он делал редактор меню и знает адреса

Дык ему нужна активная карта, с метками,зонами и т.д.


Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!

Offline

#1118 26-07-2009 17:56

Alien
Registered: 12-10-2008
Posts: 564

Re: Один вопрос

BoPoH wrote:

А в предпоследнем значении опкода 0393 поставлю например -1 то за -1 будет приниматься текущая анимация?))) Если нет, то объясни подробней что ты хотел сказать.

Не, я был неправ. У актера одновременно может быть несколько анимаций. Так просто все не решится. Выход один - перебирать все анимации, как это сделал Ryosoke.

Offline

#1119 26-07-2009 22:05

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

Re: Один вопрос

интересно, с чего такой вывод что может быть несколько анимаций?????????
если ты про поворот головы, то это не анима а ЕХЕ кость башки крутит smile ИМХО


GIMS developer

Offline

#1120 26-07-2009 23:35

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Один вопрос

ЕХЕ кость башки крутит

это и есть анима smile

Offline

#1121 27-07-2009 07:33

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Дык ему нужна активная карта, с метками,зонами и т.д.

Ага.

Offline

#1122 27-07-2009 08:30

Alien
Registered: 12-10-2008
Posts: 564

Re: Один вопрос

3Doomer wrote:

интересно, с чего такой вывод что может быть несколько анимаций?????????
если ты про поворот головы, то это не анима а ЕХЕ кость башки крутит smile ИМХО

с того, что в exe идет цикл, в котором сравнивается несколько значений со значением crc32 заданной анимации. Да и сам подумай - ведь сиджей может одновременно бежать и перезаряжать оружие, например.

Offline

#1123 27-07-2009 16:07

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Анимации, скорее всего, выполняет не весь скин, а только лишь его часть. Пример уже приведен с перезарядкой и выстрелом, так вот в САМПе можно крутить бошкой и танцевать, например.

Offline

#1124 27-07-2009 16:44

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

Re: Один вопрос

танцы это анимации
вращение головой это опкод
перезарядка это анимация ДЛЯ РУК

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


GIMS developer

Offline

#1125 29-07-2009 04:49

GTASA
Registered: 13-09-2008
Posts: 476

Re: Один вопрос

Как сделать так, чтобы скрипт1.cs не работал, если нет скрипта2.cs, и наоборот? Оба скрипта лежат в папке CLEO.

Offline

Board footer

Powered by FluxBB