You are not logged in.
первый работает согласно своему описанию: если пед куда то идет/стреляет/садится в машину и тд, то этим опкодом его можно остановить, тут все норм
а вот остальные работают... точно также. Педы после этих опкодов все так же убегают от пуль, атакуют игрока когда видят "search threat 1" и тд, хотя не должнв. вот и не понятно в чем разница
Offline
А как можно увеличить прайс для пикапа с опкодом
0518: $BUY_ASSET_PICKUPS[8] = create_available_asset_pickup 'PROP_3' at $X_PROPERTY_TO_BUY[8] $Y_PROPERTY_TO_BUY[8] $Z_PROPERTY_TO_BUY[8] price $1661
?
Если поставить $1661 больше 200тыс над пикапом красуется вообще левая стоимость, хотя денег с игрока снимают сколько нужно.
И еще один нубский вопрос, можно ли как-то в скрипте проверить. запущен другой поток или нет? Дело в том, что в моем скрипте используются команды
0ABA: end_custom_thread_named 'SVRSWS2' 0A92: create_custom_thread "svrsws2.s"
После перезугрузки svrsws2.s не стартует даже если перед выходом из игры был запущен и надо как то определить, что игра была перезагружена и поток надо заново запустить и передать параметры.
Last edited by Svyatogor2007 (19-10-2018 21:28)
Offline
Ребятки, помогите, плиз! Вот кусок кода для перемещения колес автомобиля по оси Y. Но мне нужно перемещение по оси Z. Работает перемещение по X, по Y, а по Z никак не хотят колеса двигаться!
:NONAME_12 wait 0 0A97: 1@ = car 0@ struct 0A97: 2@ = car 0@ struct 0A97: 3@ = car 0@ struct 0A97: 4@ = car 0@ struct 1@ += 0x650 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 1@ += 0x10 1@ += 52 2@ += 0x65C 0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0 2@ += 0x10 2@ += 52 3@ += 0x658 0A8D: 3@ = read_memory 3@ size 4 virtual_protect 0 3@ += 0x10 3@ += 52 4@ += 0x664 0A8D: 4@ = read_memory 4@ size 4 virtual_protect 0 4@ += 0x10 4@ += 52 jump @NONAME_13 :NONAME_13 wait 50 if 00E1: player 0 pressed_key 11 then 5@ += 0.01 end if 00E1: player 0 pressed_key 10 then 5@ -= 0.01 end if or 1@ <> 0 2@ <> 0 3@ <> 0 4@ <> 0 then 0A8C: write_memory 1@ size 4 value 5@ virtual_protect 0 0A8C: write_memory 2@ size 4 value 5@ virtual_protect 0 0A8C: write_memory 3@ size 4 value 5@ virtual_protect 0 0A8C: write_memory 4@ size 4 value 5@ virtual_protect 0 end jump @NONAME_13
Offline
Почему после 28 вложенных друг в друга условий на 29 условии компилятор выдает ошибку "Невозможно выполнить переход к метке. Внутренняя метка не найдена. Проверьте ваши высокоуровневые конструкции. Некоторые из них не имеют закрывающего "end"." END везде имеется.
Offline
Можно как то увеличить стандартный размер main.scm? (200000 байт) и размер миссий (69000 байт)
Last edited by trashmas (21-06-2019 17:22)
Offline
Здравствуйте. Клео я изучаю недавно. Решил написать скрипт в котором игрока будет обслуживать бармен.
По задумке когда сиджей заходит в бар то 2й бармен (слева) должен уже быть в баре,ожидая сиджея. Если подойти к бармену встав на красный маркер, с игрока снимут 15$ и бармена начнёт обслуживать сиджея, а поставив перед ним заказ (вино бутылки по id 1509), сиджей её выпьет и бутылка исчезнет. После этого сиджей может двигаться, а экран будет шататься, то затемняясь то просветляясь, с учётом замедления игры в 2раза - эффект опьянения длительностью на 1минуту. Когда эффект кончится всё придёт в норму - сиджей трезвый.
Да, ошибок у меня ещё много, но я не знаю как их все поправить.
1й баг - хоть скрипт и цикличен, модель загружается много раз.
2й баг - красный маркер напротив бармена не виден, хотя и активен.
3й баг - связан с анимациями сиджея, он просто встал, двигать им нельзя и сразу пошли эффекты опьянения. Но анимации бармена воспроизводятся.
Помогите мне пожалуйста и покажите на примерах исправленные варианты
{$CLEO} 0000: while true //пока условие верное, скрипт будет работать :1 wait 0 Model.Load(1509) //объявляем модель бутылки по id 1509 Model.Load(#VWFYCRP) //объявляем модель бармена 038B: load_requested_models //загружаем объявленные модели :2 wait 0 if and//проверяем на загруженность Model.Available(1509) //бутылка загружена? Model.Available(#VWFYCRP) //бармен загружен? jf @2 //если нет то возвращаемся к метке 2 и проверка будет происходить до тех пор пока объявленные модели не загрузятся wait 100 //задержка в 100мс Actor.Create(3@,CIVFEMALE, #VWFYCRP, 500.3259, -77.7879, 998.7578) //создаём актора в данных координатах (бар грув-стрит). Object.Create(0@,1509,0.0,0.0,0.0) //создаём бутылку wait 100 Model.Destroy(1509) //уничтожаем каждую модель Model.Destroy(#VWFYCRP) Actor.RemoveReferences(3@) //стираем сведения Object.RemoveReferences(0@) //чтобы не грузить память wait 500 jump @2 wait 1000 //задержка в 0мс if and //проверяем несколько условий player.Defined(0) //игрок (cj) жив ? not actor.Driving($PLAYER_ACTOR) //игрок не в машине ? player.Money(0) > 14 //число игрока целое и больше 14 ? 0102: actor $PLAYER_ACTOR in_sphere 500.3043 -75.8083 998.7578 radius 1.0 1.0 1.0 sphere 1 stopped_on_foot //когда игрок встанет на маркер then //тогда player.Money(0) += -15 //с игрока снимут 15$ if 00FE: actor $PLAYER_ACTOR in_sphere 500.3043 -75.8083 998.7578 radius 1.0 1.0 1.0 sphere 1//если игрок ещё стоит на маркере Player.CanMove(3@) = False //бармен никуда не уйдёт //и обслужит игрока 0605: actor 3@ perform_animation "BARSERVE_LOOP" IFP "BAR" framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1 //бармен смотрит по сторонам и ожидает клиентов 0605: actor 3@ perform_animation "BARSERVE_ORDER" IFP "BAR" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 2000 //бармен на месте прислушался wait 2000 0605: actor 3@ perform_animation "BARSERVE_BOTTLE" IFP "BAR" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 3000 //наклонился и достал бутылку wait 3000 0605: actor 3@ perform_animation "BARSERVE_GIVE" IFP "BAR" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time 3000 //бармен поставил перед игроком выпивку 070A: AS_actor $PLAYER_ACTOR attach_to_object 0@ offset 0.05 0.06 0.05 on_bone 6 16 perform_animation "DRNKBR_PRTL" IFP "GANGS" time 15000 wait 1500 1@ = 0 repeat wait 0 if not player.Defined(0) then 1@ = 1 //Dead/arrested/not found flag end until not actor.Animation($PLAYER_ACTOR) == "DRNKBR_PRTL" 04EF: release_animation "GANGS" if 1@ == 0 then 015D: set_gamespeed 0.5 player.SetDrunkVisuals(0,50) object.Destroy(0@) actor.DestroyInstantly(3@) - уничтожаем бармена while player.Defined(0) wait 0 32@ = 0 repeat wait 0 if not player.Defined(0) then break end until 32@ > 999 fade 0 1500 repeat wait 0 if not player.Defined(0) then break end until not fading fade 1 1500 repeat wait 0 if not player.Defined(0) then break end until not fading end //while 015D: set_gamespeed 1.0 player.SetDrunkVisuals(0,0) end end end
Offline
Можно как то увеличить стандартный размер main.scm? (200000 байт) и размер миссий (69000 байт)
К сожалению, там не динамически создающийся массив(т.е. его нужно самому создать, а не просто размер лимита другой указать) и там очень, очень много ссылок нужно патчить, чтобы это запилить(а потом еще и тестить, блин). Это касается как размера main.scm, так и размера миссий.
Мб когда-нибудь сделаю для Вайса, но для СА ооочень маловероятно, сори.
Offline
Вот исходник моего плагина Scm500k для GTA San Andreas
http://cleo.li/files/Scm500k.dpr
Суть состоит в том, чтобы выделить новый участок в памяти (в данном случае 500000 байтов для SCM и 100000 для миссий) и изменить все адреса в памяти игры, которые ссылаются на оригинальные области памяти
Offline
Мб когда-нибудь сделаю для Вайса, но для СА ооочень маловероятно, сори.
О! Мне как раз для Вайса и нужно. Бужу ждать!
Seemann, я в это не шарю, но все равно спасибо
Offline
написал тестовый скрипт который меняет клиренс автомобиля. Все работает есть CJ сидит в автомобиле, если выйти из него, то клиренс не меняется. Я что-то не так делаю, или нельзя менять настройки автомобиля не находясь в нём? Делал все через адреса памяти.
Offline
Вот исходник моего плагина Scm500k для GTA San Andreas
http://cleo.li/files/Scm500k.dprСуть состоит в том, чтобы выделить новый участок в памяти (в данном случае 500000 байтов для SCM и 100000 для миссий) и изменить все адреса в памяти игры, которые ссылаются на оригинальные области памяти
Вот ведь в SA как просто! Всего около 80 патчей адресов... Я в вайсе уже более 1500 ссылок поменял(там на один только ScriptSpace 1540 ссылок), а игре всё равно мало - вылетает(и я даже не расширял пока лимиты! Просто создал свой массив, такого же размера, как стандартный).
Но всё равно спасибо за версию для SA - буду думать и сравнивать, что я сделал не так...
Offline
Хотел бу узнать, что это за скрипт
// This file was decompiled using SASCM.ini published by GTAG ([url]http://gtag.gtagaming.com/opcode-database[/url]) on 14.6.2013 {$CLEO .cs} //-------------MAIN--------------- 0000: NOP 0662: printstring "[url=http://WWW.YOUTUBE.COM/OPCODEXE]WWW.YOUTUBE.COM/OPCODEXE[/url]" 0662: printstring "COMPILED BY OPCODEXE" 31@ = 0 :NONAME_61 wait 0 if 0AB0: key_pressed 4 jf @NONAME_169 if 31@ == 0 jf @NONAME_137 018C: play_sound 1056 at 0.0 0.0 0.0 31@ = 1 wait 200 jump @NONAME_169 :NONAME_137 018C: play_sound 1057 at 0.0 0.0 0.0 31@ = 0 wait 200 :NONAME_169 jump @NONAME_176 :NONAME_176 wait 0 if and 31@ == 1 0AD2: 2@ = player $PLAYER_CHAR targeted_actor //IF and SET jf @NONAME_61 :NONAME_206 wait 0 if and 056D: actor 2@ defined 0AB0: key_pressed 1 jf @NONAME_176 if and not Actor.Dead(2@) 02CB: actor 2@ bounding_sphere_visible jf @NONAME_176 0A96: 6@ = actor 2@ struct 6@ += 68 0A8D: 3@ = read_memory 6@ size 4 virtual_protect 0 6@ += 4 0A8D: 4@ = read_memory 6@ size 4 virtual_protect 0 6@ += 4 0A8D: 5@ = read_memory 6@ size 4 virtual_protect 0 Actor.StorePos(2@, 6@, 7@, 8@) 10@ = 35 0093: 10@ = integer 10@ to_float 12@ = 17.0 12@ /= 360.0 006B: 3@ *= 12@ // (float) 006B: 4@ *= 12@ // (float) 006B: 5@ *= 12@ // (float) 006B: 3@ *= 10@ // (float) 006B: 4@ *= 10@ // (float) 006B: 5@ *= 10@ // (float) 005B: 6@ += 3@ // (float) 005B: 7@ += 4@ // (float) 005B: 8@ += 5@ // (float) Actor.StorePos($PLAYER_ACTOR, 3@, 4@, 5@) if 06BD: no_obstacles_between 3@ 4@ 5@ and 6@ 7@ 8@ solid 1 car 1 actor 0 object 1 particle 0 jf @NONAME_514 0AB1: call_scm_func @NONAME_521 4 2@ 6@ 7@ 8@ :NONAME_514 jump @NONAME_206 :NONAME_521 0087: 4@ = 1@ // (float) 0087: 5@ = 2@ // (float) 0087: 6@ = 3@ // (float) 068D: get_camera_position_to 1@ 2@ 3@ 04C4: store_coords_to 7@ 8@ 9@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 0063: 1@ -= 4@ // (float) 0063: 2@ -= 5@ // (float) 0096: make 1@ absolute_float 0096: make 2@ absolute_float 0087: 10@ = 1@ // (float) 0087: 11@ = 2@ // (float) 006B: 10@ *= 10@ // (float) 006B: 11@ *= 11@ // (float) 005B: 10@ += 11@ // (float) 01FB: 10@ = square_root 10@ 0087: 11@ = 1@ // (float) 0087: 12@ = 10@ // (float) 0073: 11@ /= 12@ // (float) 0AA5: call 4327328 num_params 1 pop 1 11@ 0AE9: pop_float 12@ 0AA5: call 4775488 num_params 1 pop 1 11@ 0AE9: pop_float 13@ if 0AB1: call_scm_func @NONAME_1255 0 16@ jf @NONAME_816 if 0AB1: call_scm_func @NONAME_821 7 4@ 5@ 7@ 8@ 12@ 13@ 16@ 15@ jf @NONAME_816 15@ += 0.0389 0A8C: write_memory 11989592 size 4 value 15@ virtual_protect 0 :NONAME_816 0AB2: ret 0 :NONAME_821 if 6@ == 5 jf @NONAME_886 7@ = 0.01 8@ = 0.01 9@ = 1.5607 10@ = 1.5807 jump @NONAME_991 :NONAME_886 if 6@ == 6 jf @NONAME_951 7@ = 0.018 8@ = 0.02 9@ = 1.5507 10@ = 1.5907 jump @NONAME_991 :NONAME_951 7@ = 0.0 8@ = 0.0 9@ = 1.5707 10@ = 1.5707 :NONAME_991 if and 0025: 2@ > 0@ // (float) 0025: 3@ > 1@ // (float) jf @NONAME_1034 0063: 5@ -= 8@ // (float) 0087: 15@ = 5@ // (float) :NONAME_1034 if and 0025: 2@ > 0@ // (float) 8035: not 3@ >= 1@ // (float) jf @NONAME_1087 5@ *= -1.0 0063: 5@ -= 7@ // (float) 0087: 15@ = 5@ // (float) :NONAME_1087 if and 8035: not 2@ >= 0@ // (float) 0025: 3@ > 1@ // (float) jf @NONAME_1130 005B: 4@ += 9@ // (float) 0087: 15@ = 4@ // (float) :NONAME_1130 if and 8035: not 2@ >= 0@ // (float) 8035: not 3@ >= 1@ // (float) jf @NONAME_1183 4@ *= -1.0 0063: 4@ -= 10@ // (float) 0087: 15@ = 4@ // (float) :NONAME_1183 0A8D: 11@ = read_memory 11989592 size 4 virtual_protect 0 0063: 11@ -= 15@ // (float) if and not 11@ >= 0.18 11@ > -0.18 jf @NONAME_1245 0485: return_true jump @NONAME_1247 :NONAME_1245 059A: return_false :NONAME_1247 0AB2: ret 1 15@ :NONAME_1255 0A96: 0@ = actor $PLAYER_ACTOR struct 0@ += 1816 0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0 if or 1@ == 2 1@ == 3 1@ == 4 1@ == 5 1@ == 6 1@ == 7 jf @NONAME_1345 0485: return_true jump @NONAME_1347 :NONAME_1345 059A: return_false :NONAME_1347 0AB2: ret 1 1@
Offline
АИМ????????????
Offline
Annigilator wrote:АИМ????????????
Как обстоят дела с расширением лимитов VC?
Offline
Возможно ли сделать запись в ini-файл данных, полученных из одних и тех же переменных постоянно в новые секции и ячейки, на автоматическом уровне?
Допустим через один и тот же хендл в разных местах создаётся машина, как сохранить с одного хэндла данные 2 созданных машин?
Ведь если это были, допустим пикапы или созданные объекты, то через обычное сохранение: сохранились бы все созданные через один только хэндл объекты, хотя и засорят память.
Last edited by SanyaSFM (27-05-2020 20:04)
Offline
Есть ли опкод, триггерящий войну банд в определённой зоне? Видел на одном сайте его, но к нему вроде какой-то плагин нужен, а какой и где его брать я не разобрался.
Offline