You are not logged in.
t]
~AquaZ~ wrote:Где взять stripped american.gxt?
Это обычный оригинальный american.gxt
Мне нужен без лишних записей.[---]Почему вылетает если закомментировать IPL?[---]Как определить причину вылета на первоначальной загрузке? Со слов Иды -
7C90E4FF: An invalid HANDLE was specified (exc.code c0000008, tid 1496)
Last edited by ~AquaZ~ (13-01-2011 15:39)
Offline
Есть опкод
070A: AS_actor 0@ attach_to_object 14@ offset 0.0 0.0 0.0 on_bone 6 16 perform_animation "ANIM" IFP_file "FILE" time -1
Можно ли сделать, чтобы анимация эта воспроизводилась постоянно? (Обычно она производится только один раз)
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
Йа всбешон.
Есть ли патч, делающий радар на широком экране КРУГЛЫМ:mad::crazy::mad::crazy:?[---]Как делать fonts.dtf для Rus2GxtCoder от yelmi? У меня л вместо я, а сверяю - норм вроде...
Last edited by ~AquaZ~ (19-01-2011 05:00)
Offline
Offline
~AquaZ~ wrote:Как делать fonts.dtf для Rus2GxtCoder от yelmi? У меня л вместо я, а сверяю - норм вроде...
возможно ты не ту картинку смотришь, там 2 картинки со шрифтами...
Глупости, оба файла по расположения символов (букв) одинаковы.
Offline
Offline
@3Doomer - в клео 3 есть пример, если под параметрами ты подразумеваешь переменные.
{$CLEO} // this opcodes is used to make this thread to be executed once 0A95: enable_thread_saving // calculates absolute address of the text (opcode 0900) in game memory 0A9F: 0@ = current_thread_pointer 0@ += 0x10 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 0@ -= @TEXT_PTR // as all offsets are local (with negative values) // skips 0900 and datatype bytes, 0@ points directly to the text 0@ += 4 // call ShowTextBox script 0A92: "ShowTextBox.s" 0@ 0A93: end_custom_thread // custom text :TEXT_PTR 0900: "if you see this message, CLEO 3 works normally!" // just a null-terminator 0000: NOP
Кстати, когда добавляешь педов в группу, как сделать чтоб в случае если игрок отошёл далеко от них, они садились в машину и ехали за ним?
Last edited by Sergey81 (20-01-2011 11:22)
Offline
Sergey81, определённого опкода для этого нет) такие скрипты уже были написаны, мой хороший друг Daeman пробовал даже улучшить один из таких скриптов, но я не знаю, закончил ли он его. Тут нужно самому записывать переменные педов из группы и сажать их в машины...возни много конешь)
Offline
@Voron295 - А, я просто думал может модель поведения такая есть, если много доп. кода нужно - не стоит оно того тогда.
Offline
А как опкодом write_memory 0x size 1 value 0 virtual_protect 0
записывать в память текст? Пробовал через 0@s/0@v, не получается.
Offline
С помощью 0A8C/0A8D можно читать 1,2 или 4 байта. Размер строки больше, чем 4 байта, поэтому её надо записывать/читать по частям.
0@v = "Hello, world!" 0A8C: write_memory Адрес, куда надо записать строку size 4 value 0@ virtual_protect 0 0A8C: write_memory Адрес, куда надо записать строку+4 size 4 value 1@ virtual_protect 0 0A8C: write_memory Адрес, куда надо записать строку+8 size 4 value 2@ virtual_protect 0 0A8C: write_memory Адрес, куда надо записать строку+12 size 4 value 3@ virtual_protect 0
Offline
@Den_spb - код для вайса:
{$CLEO} 0000: 10@ = 0x6977AC 0@s = 'ih100a000' 05DF: write_memory 10@ size 4 value 0@ virtual_protect 0 10@ += 4 05DF: write_memory 10@ size 4 value 1@ virtual_protect 0 10@ += 4 05DF: write_memory 10@ size 1 value 2@ virtual_protect 0 while true wait 0 if 05EE: key_pressed 57 then 05E1: call 0x55C7F0 num_params 0 pop 0 05E1: call 0x55C8A0 num_params 0 pop 0 end end
с 0@s по адресу записываются пробелы, с 0@v - вылет. Если записать через cheat engine текст - всё работает.
Offline
Написал пример для СА - работает:
{$CLEO} 0AC7: 9@ = var 10@ offset 0@v = "ih100a000" 0A8C: write_memory 9@ size 4 value 0@ virtual_protect 0 9@ += 4 0A8C: write_memory 9@ size 4 value 1@ virtual_protect 0 9@ += 4 0A8C: write_memory 9@ size 4 value 2@ virtual_protect 0 9@ += 4 0A8C: write_memory 9@ size 4 value 3@ virtual_protect 0 0ACD: show_text_highpriority 10@v time 7000 0A93:
С помощью @s получается вывести на экран только 8 символов, т.к. размер переменной @s - 8 байт. В примере больше символов (9), поэтому я использовал тип переменной @v (16 байт).
Какой размер того адреса, куда записывается строка?
Offline
Для вайса работает вот так:
{$CLEO} 0000: 05DF: write_memory 0x6977AC size 1 value 0x69 virtual_protect 0 //i 05DF: write_memory 0x6977AD size 4 value 0x30303168 virtual_protect 0 //h100 05DF: write_memory 0x6977B1 size 4 value 0x30303061 virtual_protect 0 //a000 while true wait 0 if 05EE: key_pressed 57 then 05E1: call 0x55C7F0 num_params 0 pop 0 05E1: call 0x55C8A0 num_params 0 pop 0 end end {ih100a000}
Хотелось бы вместо хекс значений текст только.
Offline
Не понимаю, для чего точно нужен опкод
Player.Defined($PLAYER_CHAR)
И для чего именно нужно его использовать?
Вопрос касается миссий.
В справке СБ (раздел "Условные опкоды") написано:
Player.Defined($PLAYER_CHAR) - игрок найден или уже создан.
Там же, в разделе "Создание миссии, часть 2":
1. Игрок должен быть активен (не пойманным, не утонувшим).
Так что он на самом деле значит?!
Если последнее, то зачем нужна проверка
if
not Actor.Dead($PLAYER_ACTOR)
jf @...
?
А в миссии еще есть постоянная проверка wasted_or_busted, так получается, без этих двух опкодов можно обойтись? Но нет, в оригинальных миссиях они используются, только я не понял принципа этого использования.
Объясните, пожалуйста, что-то я запутался.
Last edited by oz91 (26-01-2011 11:58)
Offline
Player.Defined($PLAYER_CHAR) - игрок найден или уже создан.
это утверждение верно!
используется это для проверки, существует ли такой игрок, т.е. ставить эту проверку перед тем как применять какое-то действие к игроку. Например, в клео скрипте ты одеваешь игрока так как тебе надо, но не ставишь никаких проверок а просто сразу же пишешь команду Player.SetClothes, то возможно майн, в это время ещё не успел пройти команду Player.Create, т.е. игрок ещё не был создан, а значит высока вероятность вылета...поэтому прежде чем использовать какие-то опкоды, относящиеся к игроку (и к $PLAYER_ACTOR тоже), нужно ставить эту проверку. И кажется даже перед проверками, связанными с игроком нужно ставить эту проверку, например:
:1 wait 0 if player.Defined($PLAYER_CHAR) jf @1 if player.Controllable($PLAYER_CHAR) jf @1 .......
Last edited by Voron295 (26-01-2011 14:05)
Offline
Voron295,
Я тоже привык так думать, но меня запутал код в оригинальных миссиях. Там тоже ставится эта проверка. Но не всегда. Например, игрока, бывает, замораживают без этой проверки...
А
какое значение она возвращает, когда Сиджей умер? По идее, умер то актер,
но почему в миссиях не оставить только проверку на смерть именно актера? Игру можно начать или новую, или сохраненную. Так как мы не можем сохраняться в миссиях, то, загрузив игру, у нас только начнут действовать потоки для запуска миссий. А там уже используется проверка, есть ли игрок. Тогда смысл использовать ее в миссиях?
Last edited by oz91 (26-01-2011 14:55)
Offline
Также игрок на мгновение перестаёт существовать при смерти или аресте.
[small][/small]
Offline
@yelmi - ЫЫЫЫ
Offline
Скажите, пожалуйста, как узнать, кого сбил игрок или сбит ли актёр?
Offline