You are not logged in.
Ребята, пожалуйста дайте адреса памяти, которые создают радар! Ну, например, одно создает карту, второе - метку игрока в центре, третье - значки, маркеры и т.д.
Offline
Offline
Подскажите, пожалуйста, почему при попытке декомпиляции некоторых cleo-скриптов появляется ошибка декомпиляции. Например, в сообщении СБ пишет: "Sanny Builder 3 - decompileк error", а ниже: "Неизвестный параметр 9Fh по адресу 791." Что это за ошибка и существует ли способ защитить свой скрипт от декомпиляции?
И второй вопрос: как с помощью клео-скрипта вывести на экран свой (любой, какой вздумается) текст? Заранее благодарен
Offline
И второй вопрос: как с помощью клео-скрипта вывести на экран свой (любой, какой вздумается) текст? Заранее благодарен
Создавай в папке cleo директорию CLEO_TEXT и туда положи файл с любым названием (расширение - .fxt).
И не забудь поставить перед этим последнюю версию CLEO, а так же установить плагин GxtHook.
Потом просто вызывай текст как обычно указав на свой ключ.
Например:
Вид файла (например) special.fxt: FUNC1 This is test pre-formatted text. All okay!
Offline
О, спасибо огромное! Получилось! ))) только текст появился в левом верхнем углу, а можно сделать, чтоб текст был посередине экрана и имел вид, например, как "MISSION PASSED" или что-то в этом роде. Большими буквами, а не типа статуса "Вы проголодались и начинаете терять энергию" как сейчас)))
Offline
@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
На мой вопрос ответьте плизз!!! Можно ли записать в переменную анимацию игрока??? Мне надо для скрипта чтобы всё замедлялось, а сиджей нет...
Тоесть я замедляю время и всё время к текущей анимации применяю такой опкод:
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)
Offline
Игра не оперирует именами анимаций. Анимации, как и 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
Все уже давно хотят сделать скрипт лечения, полноценный, но никому этого ещё не удавалось т.к. в их скриптах не было самого оживления человека.
Я очередной, кто хочет это сделать.
Я тут подумал: если медики оживляют людей, значит, это возможно и ГГ. Начинать надо этот клубок, по-моему, непосредственно с медиков. Но тут возникает загвоздка: где хранится скрипт медиков? Очевидно, в самом мэйне его нет, т.к. скриптеры давно бы его уже обнаружили. Так где же этот скрипт? Кто-нибудь его находил?
Offline
Что ты этим хотел сказать:
Для опкода 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 будет приниматься текущая анимация?))) Если нет, то объясни подробней что ты хотел сказать.
Offline
Создан на экране текст1 и текст2. Текст1 на некотором расстоянии от текст2.
Как сделать, чтобы текст2 смещается в сторону в зависимости от длины слова в текст1?
Offline
Offline
Offline
Все уже давно хотят сделать скрипт лечения, полноценный, но никому этого ещё не удавалось т.к. в их скриптах не было самого оживления человека.
Я очередной, кто хочет это сделать.
Я тут подумал: если медики оживляют людей, значит, это возможно и ГГ. Начинать надо этот клубок, по-моему, непосредственно с медиков. Но тут возникает загвоздка: где хранится скрипт медиков? Очевидно, в самом мэйне его нет, т.к. скриптеры давно бы его уже обнаружили. Так где же этот скрипт? Кто-нибудь его находил?
Этот "скрипт" зашит в gta_sa.exe
Offline
Все уже давно хотят сделать скрипт лечения, полноценный, но никому этого ещё не удавалось т.к. в их скриптах не было самого оживления человека.
Я очередной, кто хочет это сделать.
Я тут подумал: если медики оживляют людей, значит, это возможно и ГГ. Начинать надо этот клубок, по-моему, непосредственно с медиков. Но тут возникает загвоздка: где хранится скрипт медиков? Очевидно, в самом мэйне его нет, т.к. скриптеры давно бы его уже обнаружили. Так где же этот скрипт? Кто-нибудь его находил?
А в чем проблема? Просто проигрывай анимацию лечения, которую используют медики и всё.
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Какой адрес памяти открывает такую обзорную карту? (Меню - Карта - Z).
1) отними управление у игрока
2) закрась экран чёрным цветом (опкод 038E)
3) выведи на экран текстуру MAP из models/fronten2.txd
4) выведи все нужные тебе надписи и цифры (опкоды 033F 0340 033E 045A 045B)
З.Ы. советую спросить лично Александра, т.к. он делал редактор меню и знает адреса
GIMS developer
Offline
GTASA wrote:Какой адрес памяти открывает такую обзорную карту? (Меню - Карта - Z).
1) отними управление у игрока
2) закрась экран чёрным цветом (опкод 038E)
3) выведи на экран текстуру MAP из models/fronten2.txd
4) выведи все нужные тебе надписи и цифры (опкоды 033F 0340 033E 045A 045B)
З.Ы. советую спросить лично Александра, т.к. он делал редактор меню и знает адреса
Дык ему нужна активная карта, с метками,зонами и т.д.
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
А в предпоследнем значении опкода 0393 поставлю например -1 то за -1 будет приниматься текущая анимация?))) Если нет, то объясни подробней что ты хотел сказать.
Не, я был неправ. У актера одновременно может быть несколько анимаций. Так просто все не решится. Выход один - перебирать все анимации, как это сделал Ryosoke.
Offline
ЕХЕ кость башки крутит
это и есть анима
Offline
Дык ему нужна активная карта, с метками,зонами и т.д.
Ага.
Offline
интересно, с чего такой вывод что может быть несколько анимаций?????????
если ты про поворот головы, то это не анима а ЕХЕ кость башки крутит ИМХО
с того, что в exe идет цикл, в котором сравнивается несколько значений со значением crc32 заданной анимации. Да и сам подумай - ведь сиджей может одновременно бежать и перезаряжать оружие, например.
Offline
Анимации, скорее всего, выполняет не весь скин, а только лишь его часть. Пример уже приведен с перезарядкой и выстрелом, так вот в САМПе можно крутить бошкой и танцевать, например.
Offline
танцы это анимации
вращение головой это опкод
перезарядка это анимация ДЛЯ РУК
если в анимации делать ключи только для рук, то ноги будут управляться уже другой анимацией....а значит выполнить несколько аним одновременно это не проблема))))))
GIMS developer
Offline
Как сделать так, чтобы скрипт1.cs не работал, если нет скрипта2.cs, и наоборот? Оба скрипта лежат в папке CLEO.
Offline