#5026 13-10-2018 01:45

trashmas
Registered: 12-04-2016
Posts: 41

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

первый работает согласно своему описанию: если пед куда то идет/стреляет/садится в машину и тд, то этим опкодом его можно остановить, тут все норм
а вот остальные работают... точно также. Педы после этих опкодов все так же убегают от пуль, атакуют игрока когда видят "search threat 1" и тд, хотя не должнв. вот и не понятно в чем разница smile

Offline

#5027 13-10-2018 16:42

Svyatogor2007
From: Moscow
Registered: 06-10-2018
Posts: 6

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

А как можно увеличить прайс для пикапа с опкодом

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

#5028 24-11-2018 13:09

Dimoman
Registered: 01-07-2014
Posts: 15

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

Ребятки, помогите, плиз! Вот кусок кода для перемещения колес автомобиля по оси 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

#5029 15-02-2019 14:16

L_S
From: Russia
Registered: 15-02-2019
Posts: 1
Website

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

Почему после 28 вложенных друг в друга условий на 29 условии компилятор выдает ошибку "Невозможно выполнить переход к метке. Внутренняя метка не найдена. Проверьте ваши высокоуровневые конструкции. Некоторые из них не имеют закрывающего "end"." END везде имеется.

Offline

#5030 30-05-2019 19:27

Shag
Registered: 29-03-2010
Posts: 147
Website

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

Почему после 28 вложенных друг в друга условий на 29 условии

wall
Зачем так мучаться, когда есть старый добрый jf...

Offline

#5031 21-06-2019 14:27

trashmas
Registered: 12-04-2016
Posts: 41

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

Можно как то увеличить стандартный размер main.scm? (200000 байт) и размер миссий (69000 байт)

Last edited by trashmas (21-06-2019 17:22)

Offline

#5032 30-06-2019 20:22

Remca12
Registered: 30-06-2019
Posts: 32

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

Здравствуйте. smile Клео я изучаю недавно. Решил написать скрипт в котором игрока будет обслуживать бармен.
По задумке когда сиджей заходит в бар то 2й бармен (слева) должен уже быть в баре,ожидая сиджея. Если подойти к бармену встав на красный маркер, с игрока снимут 15$ и бармена начнёт обслуживать сиджея, а поставив перед ним заказ (вино бутылки по id 1509), сиджей её выпьет и бутылка исчезнет. После этого сиджей может двигаться, а экран будет шататься, то затемняясь то просветляясь, с учётом замедления игры в 2раза - эффект опьянения длительностью на 1минуту.  Когда эффект кончится всё придёт в норму - сиджей трезвый.
Да, ошибок у меня ещё много, но я не знаю как их все поправить. rolleyes
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

#5033 05-07-2019 06:04

Shag
Registered: 29-03-2010
Posts: 147
Website

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

trashmas wrote:

Можно как то увеличить стандартный размер main.scm? (200000 байт) и размер миссий (69000 байт)

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

Мб когда-нибудь сделаю для Вайса, но для СА ооочень маловероятно, сори.

Offline

#5034 05-07-2019 19:37

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

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

Есть лимит аджастер от Фастмана, там есть такая фишка..


I know everything and nothing...

Offline

#5035 06-07-2019 18:19

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

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

Вот исходник моего плагина Scm500k для GTA San Andreas
http://cleo.li/files/Scm500k.dpr

Суть состоит в том, чтобы выделить новый участок в памяти (в данном случае 500000 байтов для SCM и 100000 для миссий) и изменить все адреса в памяти игры, которые ссылаются на оригинальные области памяти

Offline

#5036 08-07-2019 22:32

trashmas
Registered: 12-04-2016
Posts: 41

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

Shag wrote:

Мб когда-нибудь сделаю для Вайса, но для СА ооочень маловероятно, сори.

О! Мне как раз для Вайса и нужно. Бужу ждать!
Seemann, я в это не шарю, но все равно спасибо cool

Offline

#5037 13-07-2019 13:57

Dimoman
Registered: 01-07-2014
Posts: 15

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

написал тестовый скрипт который меняет клиренс автомобиля. Все работает есть CJ сидит в автомобиле, если выйти из него, то клиренс не меняется. Я что-то не так делаю, или нельзя менять настройки автомобиля не находясь в нём? Делал все через адреса памяти.

Offline

#5038 25-12-2019 18:55

Shag
Registered: 29-03-2010
Posts: 147
Website

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

Seemann wrote:

Вот исходник моего плагина Scm500k для GTA San Andreas
http://cleo.li/files/Scm500k.dpr

Суть состоит в том, чтобы выделить новый участок в памяти (в данном случае 500000 байтов для SCM и 100000 для миссий) и изменить все адреса в памяти игры, которые ссылаются на оригинальные области памяти

Вот ведь в SA как просто! Всего около 80 патчей адресов... Я в вайсе уже более 1500 ссылок поменял(там на один только ScriptSpace 1540 ссылок), а игре всё равно мало - вылетает(и я даже не расширял пока лимиты! Просто создал свой массив, такого же размера, как стандартный).
Но всё равно спасибо за версию для SA - буду думать и сравнивать, что я сделал не так...

Offline

#5039 18-01-2020 11:30

Annigilator
Registered: 18-01-2020
Posts: 2

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

Хотел бу узнать, что это за скрипт

// 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

#5040 19-01-2020 02:24

Shag
Registered: 29-03-2010
Posts: 147
Website

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

Annigilator wrote:

Хотел бу узнать, что это за скрипт

чит

Offline

#5041 19-01-2020 08:49

Annigilator
Registered: 18-01-2020
Posts: 2

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

АИМ????????????

Offline

#5042 01-03-2020 03:39

Shag
Registered: 29-03-2010
Posts: 147
Website

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

Annigilator wrote:

АИМ????????????

Сложно сказать без детального анализа адресов, но есть такая возможность, что аим.

Offline

#5043 28-04-2020 17:17

trashmas
Registered: 12-04-2016
Posts: 41

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

Shag wrote:
Annigilator wrote:

АИМ????????????

Как обстоят дела с расширением лимитов VC?  smile

Offline

#5044 27-05-2020 20:04

SanyaSFM
Registered: 11-05-2020
Posts: 32

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

Возможно ли сделать запись в ini-файл данных, полученных из одних и тех же переменных постоянно в новые секции и ячейки, на автоматическом уровне?
Допустим через один и тот же хендл в разных местах создаётся машина, как сохранить с одного хэндла данные 2 созданных машин?
Ведь если это были, допустим пикапы или созданные объекты, то через обычное сохранение: сохранились бы все созданные через один только хэндл объекты, хотя и засорят память.

Last edited by SanyaSFM (27-05-2020 20:04)

Offline

#5045 12-09-2022 20:48

Red_Ender
From: Смоленск
Registered: 28-07-2020
Posts: 40

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

Есть ли опкод, триггерящий войну банд в определённой зоне? Видел на одном сайте его, но к нему вроде какой-то плагин нужен, а какой и где его брать я не разобрался.

Offline

Board footer

Powered by FluxBB