You are not logged in.
Простой скрипт. Менты на радаре. Но вылетает! И нигде не могу найти ошибку.
{$CLEO}
wait 0
:START
wait 0
if
0256: player $PLAYER_CHAR defined
jf @START
if
0ADC: test_cheat "COPS"
jf @START
00BC: show_text_highpriority GXT 'CHEAT1' time 3000 flag 0 // œ¦-koš ak¦œ¢œpo¢a®
wait 2000
:COPS
wait 0
if
0ADC: test_cheat "COPSOFF"
then
wait 1000
jump @START
end
00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
3@ = 900.0
gosub @AIC_GETACTOR2
if
056D: actor 9@ defined
then
0187: 11@ = create_marker_above_actor 9@
018B: set_marker 11@ radar_mode 2
0165: set_marker 11@ color_to 1
end
00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
3@ = 900.0
gosub @AIC_GETVEHICLE1
if
056E: car 9@ defined
then
0186: 10@ = create_marker_above_car 9@
018B: set_marker 10@ radar_mode 2
0165: set_marker 10@ color_to 2
end
jump @COPS
////////////////////////////////////////////////////////////
:AIC_GETVEHICLE
0006: 16@ = 305869
0006: 5@ = @AIC_TESTVEHICLEHANDLE
0006: 6@ = 2584
0006: 8@ = -1
0256: player $PLAYER_CHAR defined
004D: jump_if_false @AIC_STARTSEARCH
00DF: actor $PLAYER_ACTOR driving
004D: jump_if_false @AIC_STARTSEARCH
03C0: 8@ = actor $PLAYER_ACTOR car
0002: jump @AIC_STARTSEARCH
:AIC_STARTSEARCH
008B: 16@ = &0(16@,1i) // CPool*
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 16@ + 8 )^ = 7@ // CPool.Size
0A8D: 11@ = read_memory 16@ size 4 virtual_protect 0 // CPool.pUnits
0006: 9@ = -1
0006: 10@ = 0
:AIC_SEARCHLOOPMAIN
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 11@ + 20 )^ = 4@ // xyz*
8039: not 4@ == 0
004D: jump_if_false @AIC_SEARCHLOOPNEXT
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 48 )^ = 12@ // x
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 52 )^ = 13@ // y
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 56 )^ = 14@ // z
050A: 15@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 12@ 13@ 14@
0025: 3@ > 15@ // (float)
004D: jump_if_false @AIC_SEARCHLOOPNEXT
0085: 9@ = 10@ // (int) // counter
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 16@ + 4 )^ = 4@ // CPool.flags
005A: 4@ += 9@ // (int)
0A8D: 4@ = read_memory 4@ size 1 virtual_protect 0
0012: 9@ *= 256
005A: 9@ += 4@ // (int)
0002: jump 5@
:AIC_TESTVEHICLEHANDLE
056E: is 9@ valid_vehicle_handle
004D: jump_if_false @AIC_NOHANDLE
00D6: if
003B: 8@ == 9@ // (int)
004D: jump_if_false @AIC_NEWSEARCHRADIUS
0002: jump @AIC_NOHANDLE
:AIC_NOHANDLE
0006: 9@ = -1
0002: jump @AIC_SEARCHLOOPNEXT
:AIC_NEWSEARCHRADIUS
046C: 30@ = car 9@ driver
if
056D: actor 30@ defined
jf @AIC_NOHANDLE1
089F: get_actor 30@ pedtype_to 21@
if
21@ == 6
jf @AIC_NOHANDLE1
if or
02F2: actor 30@ model == #LAPD1
02F2: actor 30@ model == #SFPD1
02F2: actor 30@ model == #LVPD1
02F2: actor 30@ model == #CSHER
02F2: actor 30@ model == #LAPDM1
02F2: actor 30@ model == #SWAT
02F2: actor 30@ model == #FBI
02F2: actor 30@ model == #ARMY
02F2: actor 30@ model == #DSHER
jf @AIC_NOHANDLE1
if
056C: actor 30@ driving_police_car
jf @AIC_NOHANDLE1
0051: return
0085: 3@ = 15@
:AIC_SEARCHLOOPNEXT
005A: 11@ += 6@ // (int)
000A: 10@ += 1
002D: 10@ >= 7@ // (int)
004D: jump_if_false @AIC_SEARCHLOOPMAIN
0051: return
:AIC_READMEMOFFSET
0A8E: 0@ = 0@ + 1@ // int
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0AB2: ret 1 0@
:AIC_GETVEHICLE1
0006: 16@ = 305869
0006: 5@ = @AIC_TESTVEHICLEHANDLE1
0006: 6@ = 2584
0006: 8@ = -1
0256: player $PLAYER_CHAR defined
004D: jump_if_false @AIC_STARTSEARCH1
00DF: actor $PLAYER_ACTOR driving
004D: jump_if_false @AIC_STARTSEARCH1
03C0: 8@ = actor $PLAYER_ACTOR car
0002: jump @AIC_STARTSEARCH1
:AIC_STARTSEARCH1
008B: 16@ = &0(16@,1i) // CPool*
0AB1: call_scm_func @AIC_READMEMOFFSET1 2 ( 16@ + 8 )^ = 7@ // CPool.Size
0A8D: 11@ = read_memory 16@ size 4 virtual_protect 0 // CPool.pUnits
0006: 9@ = -1
0006: 10@ = 0
:AIC_SEARCHLOOPMAIN1
0AB1: call_scm_func @AIC_READMEMOFFSET1 2 ( 11@ + 20 )^ = 4@ // xyz*
8039: not 4@ == 0
004D: jump_if_false @AIC_SEARCHLOOPNEXT1
0AB1: call_scm_func @AIC_READMEMOFFSET1 2 ( 4@ + 48 )^ = 12@ // x
0AB1: call_scm_func @AIC_READMEMOFFSET1 2 ( 4@ + 52 )^ = 13@ // y
0AB1: call_scm_func @AIC_READMEMOFFSET1 2 ( 4@ + 56 )^ = 14@ // z
050A: 15@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 12@ 13@ 14@
0025: 3@ > 15@ // (float)
004D: jump_if_false @AIC_SEARCHLOOPNEXT1
0085: 9@ = 10@ // (int) // counter
0AB1: call_scm_func @AIC_READMEMOFFSET1 2 ( 16@ + 4 )^ = 4@ // CPool.flags
005A: 4@ += 9@ // (int)
0A8D: 4@ = read_memory 4@ size 1 virtual_protect 0
0012: 9@ *= 256
005A: 9@ += 4@ // (int)
0002: jump 5@
:AIC_TESTVEHICLEHANDLE1
056E: is 9@ valid_vehicle_handle
004D: jump_if_false @AIC_NOHANDLE1
00D6: if
003B: 8@ == 9@ // (int)
004D: jump_if_false @AIC_NEWSEARCHRADIUS1
0002: jump @AIC_NOHANDLE1
:AIC_NOHANDLE1
0006: 9@ = -1
0002: jump @AIC_SEARCHLOOPNEXT1
:AIC_NEWSEARCHRADIUS1
046C: 30@ = car 9@ driver
if
056D: actor 30@ defined
jf @AIC_NOHANDLE1
089F: get_actor 30@ pedtype_to 21@
if
21@ == 6
jf @AIC_NOHANDLE1
if or
02F2: actor 30@ model == #LAPD1
02F2: actor 30@ model == #SFPD1
02F2: actor 30@ model == #LVPD1
02F2: actor 30@ model == #CSHER
02F2: actor 30@ model == #LAPDM1
02F2: actor 30@ model == #SWAT
02F2: actor 30@ model == #FBI
02F2: actor 30@ model == #ARMY
02F2: actor 30@ model == #DSHER
jf @AIC_NOHANDLE1
if
056C: actor 30@ driving_police_car
jf @AIC_NOHANDLE1
0051: return
0085: 3@ = 15@
:AIC_SEARCHLOOPNEXT1
005A: 11@ += 6@ // (int)
000A: 10@ += 1
002D: 10@ >= 7@ // (int)
004D: jump_if_false @AIC_SEARCHLOOPMAIN1
0051: return
:AIC_READMEMOFFSET1
0A8E: 0@ = 0@ + 1@ // int
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0AB2: ret 1 0@
///////////////////////////////////////
:AIC_GETACTOR2
0006: 16@ = 305868
0006: 5@ = @AIC_TESTACTORHANDLE2
0006: 6@ = 1988
0002: jump @AIC_STARTSEARCH2
:AIC_STARTSEARCH2
008B: 16@ = &0(16@,1i) // CPool*
0AB1: call_scm_func @AIC_READMEMOFFSET2 2 ( 16@ + 8 )^ = 7@ // CPool.Size
0A8D: 11@ = read_memory 16@ size 4 virtual_protect 0 // CPool.pUnits
0006: 9@ = -1
0006: 10@ = 0
:AIC_SEARCHLOOPMAIN2
0AB1: call_scm_func @AIC_READMEMOFFSET2 2 ( 11@ + 20 )^ = 4@ // xyz*
8039: not 4@ == 0
004D: jump_if_false @AIC_SEARCHLOOPNEXT2
0AB1: call_scm_func @AIC_READMEMOFFSET2 2 ( 4@ + 48 )^ = 12@ // x
0AB1: call_scm_func @AIC_READMEMOFFSET2 2 ( 4@ + 52 )^ = 13@ // y
0AB1: call_scm_func @AIC_READMEMOFFSET2 2 ( 4@ + 56 )^ = 14@ // z
050A: 15@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 12@ 13@ 14@
0025: 3@ > 15@ // (float)
004D: jump_if_false @AIC_SEARCHLOOPNEXT2
0085: 9@ = 10@ // (int) // counter
0AB1: call_scm_func @AIC_READMEMOFFSET2 2 ( 16@ + 4 )^ = 4@ // CPool.flags
005A: 4@ += 9@ // (int)
0A8D: 4@ = read_memory 4@ size 1 virtual_protect 0
0012: 9@ *= 256
005A: 9@ += 4@ // (int)
0002: jump 5@
:AIC_TESTACTORHANDLE2
056D: is 9@ valid_actor_handle
004D: jump_if_false @AIC_NOHANDLE2
00D6: if or
003C: $PLAYER_ACTOR == 9@ // (int)
0118: actor 9@ dead
004D: jump_if_false @AIC_NEWSEARCHRADIUS2
0002: jump @AIC_NOHANDLE2
:AIC_NOHANDLE2
0006: 9@ = -1
0002: jump @AIC_SEARCHLOOPNEXT2
:AIC_NEWSEARCHRADIUS2
089F: get_actor 9@ pedtype_to 22@
if
22@ == 6
jf @AIC_NOHANDLE2
if or
02F2: actor 9@ model == #LAPD1
02F2: actor 9@ model == #SFPD1
02F2: actor 9@ model == #LVPD1
02F2: actor 9@ model == #CSHER
02F2: actor 9@ model == #LAPDM1
02F2: actor 9@ model == #SWAT
02F2: actor 9@ model == #FBI
02F2: actor 9@ model == #ARMY
02F2: actor 9@ model == #DSHER
jf @AIC_NOHANDLE2
0051: return
0085: 3@ = 15@
:AIC_SEARCHLOOPNEXT2
005A: 11@ += 6@ // (int)
000A: 10@ += 1
002D: 10@ >= 7@ // (int)
004D: jump_if_false @AIC_SEARCHLOOPMAIN2
0051: return
:AIC_READMEMOFFSET2
0A8E: 0@ = 0@ + 1@ // int
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0AB2: ret 1 0@
Ребята, а ведь в San Andreas 1C тоже есть мануал в формате pdf, включающий в себя два файла: карта + информация, как было в gta 4 и vice city? Пожалуйста, дайте мне этот мануал.
Простите, но я что-то не очень понял. Дайте плиз пример скрипта, где при нажатии [0ab0: 17] включается таймер с обратным отчетом в 8 секунд.
Скажите пожалуйста, как создать таймер? Только визуальный на экране, как в миссиях(30-29-28-27...4-3-2-1 и т.д.). А то что-то не нашел нигде.
Кстати, на счет windows 7. Возможно ли создать какой-то патч для SA, чтобы игра нормально работала в этой ОС? А то у меня, если зайдешь в меню, а затем обратно в игру, все зависает. Не всегда, но часто.
Den_spb, еще раз повторю, вот ты найди теперь опкод 09DE: actor $PLAYER_ACTOR entering_car.
А он был записан только как отрицательный.
0AE1: работает некорректно. Не знаю почему. Два других для нахождения объектов и транспорта прекрасно, а этот какой-то не такой. Что-то в нем не так.
А еще эти же два для нахождения объектов и транспорта не работают, если по близости нет объектов. Игра вылетает. Не знаю почему, я ставлю проверку 0@ <> -1, но она не помогает, когда лечу куда-то в лес, меня выкидывает.
===
Слухай, Alien, это капец. С твоим клео 4 и с моим простейшим скриптом вылетает из игры при посадке в машину. Так что в посте #35 ты не прав. А вот мой скрипт:
:START wait 0 if 0256: player $PLAYER_CHAR defined jf @START if 0818: actor $PLAYER_ACTOR in_air jf @START if 80DF: not actor $PLAYER_ACTOR driving jf @START if 8491: not actor $PLAYER_ACTOR has_weapon 46 jf @START 0819: 0@ = actor $PLAYER_ACTOR distance_from_ground if 0@ >= 18.0 jf @START 1@ += 2.4 083E: set_actor $PLAYER_ACTOR rotation 1@ 1@ 0.0 while_in_air 0819: 0@ = actor $PLAYER_ACTOR distance_from_ground if 0@ = 0.0 then 0A8D: 2@ = read_memory 0xB6F5F0 size 4 virtual_protect 0 2@ += 66 0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0 if 3@ >= 4 then 0223: set_actor $PLAYER_ACTOR health_to 0 end end jump @START
С ним вылетает при посадке в тачку в CLEO 4, а в CLEO 3 - нет.
Кстати, зря ты удалил из поиска опкодов отрицательные опкоды. Там были те, которых не было в положительных, вот пример: 89DE: not actor $PLAYER_ACTOR entering_car
Напиши значение самого CObject.
И, это сработает, если я сделаю так?
0A8D: 0@ = read_memory [CObject] size 4 virtual_protect 0
0@ += 66 // 0@ += 0x42
0A8C: write_memory 0@ size 4 value 5 virtual_protect 0 // иммунитет к выстрелам + коллизия (4 + 1 = 5)
Alien, у меня все нормально, но вот люди говорят, что игра не запускается со скриптами из CLEO 3. Можно как-то решить эту беду?
Кто-нибудь подскажет адреса + смещения для работы с объектами? Например, отключить коллизию, поставить иммунитеты и т.д через память? На гтамоддинг есть много информации о транспорте + смещения. А для объектов их нет. Где их можно взять?
Не все владеют фотошопом, я думаю, большая часть хочет только сидеть и играть в красивую игру.
0@ это адрес, по которому вводится текст из ключа, естественно, что ключ - это 0@v.
А потом переменная 0@ заменяется на адрес в этом опкоде.
А как ты хотел, чтоб текст длинной, например, 20 символов, влез в переменную @v, если там всего 16.
Я делаю так. Правильно? Хочу получить нормальное имя транспорта.
03C0: 1@ = actor $PLAYER_ACTOR car
0@v = car_model 1@ name
0ADE: 0@ = text_by_GXT_entry 0@v
... ???
Спасибо 
Простите, вопрос, возможно, не в тему, но почему, когда я воспользовался 0ad0, я некоторые буквы сделал заглавными, некоторые - строчными. И в игре они у меня все заглавные. Та же беда и с Александеровским quick opcode. Когда я вывожу собственный текст, у меня буквы все заглавные. Это только у меня так, и, если да, с чем это связано и как это решить?
А вот в тему:
0ADE: 0@ = text_by_GXT_entry 0@v
Ошибка? Текст ведь либо в 0@s, либо в 0@v. Тем более когда пытался тупо вывести текст 0@, были ошибки в игре. А потом заменил на 0@v. Ошибок не было, но и никакой текст не выводился.
Кто-нибудь разбирается? Хотел бы получить ссылку с подробным описанием каждого числа или напишите здесь.
У меня раньше после смерти было написано "Кудахтающий", Свит - сладенький и т.д. 1С могли бы сделать буквы качественнее, у них они мутные и хреновые.
Спасибо.
Нет, я это видел на гтамоддинг и это не то.
/////////
Можно с помощью клео удалять или хотя бы перемещать статические объекты на карте? При этом не обязательно изменять Data/Maps. Главное чтобы если был скрипт, то и карта другая.
Озвучка обычная.
У кого есть? Скиньте плиз русификатор (Models\Fonts.txd; Data\Fonts.dat; Text;)
Кстати, никто не знает, почему на обычный Вайс русификация от 1С не идет? Там буквы корявые становятся.
Эй, ребята! Какими адресами памяти можно менять анимацию? Например, мне нужно прыжок игрока заменить на другую анимацию, бег на пешеходный и т.д. То есть вместо одной анимации игрока ставить какую-то другую.
А еще будет обновляться? Или уже то что в данный момент в первом посте - финал?
Я спросил, какие изменения он вносит, а не как его активировать.
Ребята, кто может мне точно сказать, какие изменения в памяти делает чит:
0AA5: call 0x438370 num_params 1 pop 1 28 - сделать машине улучшенное управление.
Кто-нибудь подскажет, как сделать, чтобы если к транспорту (грузовик, трактор, аэропорт-мобиль и т.д.) прикреплен прицеп, то он не смог ни при каких обстоятельствах оторваться? Может какой-то адрес памяти?
ALien, где-то здесь ты писал про имитацию двойного нажатия. Но так и не дал пример. Так вот, как имитировать двойное нажатие?
И как имитировать нажатие любых кнопок (не только 00e1, а еще и 0ab0)?