#51 Re: Вопросы по скриптингу » Attach car - приклеивание авто » 01-02-2018 18:31

TrushinVlad wrote:

чтобы машина приклеилась в том месте, где стояла? wall

Попробуйте так, если я правильно понял:

00AA: store_car 0@ position_to 2@ 3@ 4@
00AA: store_car 1@ position_to 5@ 6@ 7@
0063: 2@ -= 5@ // (float)
0063: 3@ -= 6@ // (float)
0063: 4@ -= 7@ // (float)
077D: 5@ = car 1@ x_angle
06BE: 6@ = car 1@ y_angle
0174: 7@ = car 1@ z_angle
0683: attach_car 1@ to_car 0@ with_offset 2@ 3@ 4@ rotation 5@ 6@ 7@

#52 Re: GTA Modding » Make car immune... » 22-12-2017 14:51

ESForces wrote:

0A21: set_car 1@ not_affected_by_cheats 1
08F2: set_car 1@ targettable_by_heatseeker 0

Use before:

if
056E:   car 1@ defined
then
// You'r code here
end

If car created in other thread, then use a global variable. The Game don't save this properties. Need always check car and set properties if car exist.

#53 Re: Вопросы по скриптингу » Не работает код » 04-12-2017 11:39

Kim wrote:

То есть скрипт должен работать 3 секунды

wait в этом случае не гарантирует Вам, что пройдут реальные 3 секунды. Будет погрешность в любом случае ( часто колосальная ). Вообще для таких случаев лучше использовать переменные-таймеры ( хотя не обязательно ):

{$CLEO .cs}
32@ = 0 // чистим таймер

:Main_Loop
wait 0
if
32@ > 3000 // нужно примерно рассчитать когда будет 3 реальных секунды
then
jump @Main_Loop_end
end

// здесь мутим воду...

jump @Main_Loop

:Main_Loop_end
0A93: end_custom_thread

Такое задавайте в общих вопросах, как Вы изначально сделали. Мне пришлось удалить пост из за этого )

#54 Re: Вопросы по скриптингу » Как работает 065B: get_pickup_coordinates? » 26-11-2017 19:39

TomReed wrote:

красный маркер

Ждём скрин, а то описание не понятное )

И, как мне кажется, опкод 065B, и тем более 0A9F, не имеют отношения к заданому вопросу

TomReed wrote:

на серверах

Вопрос нужно задавать на форумах SAMP, MTA и прочих многопользовательских сервисов. Здесь такое обычно не обсуждают.

#55 Re: Вопросы по скриптингу » Вопрос » 24-09-2017 06:00

Seemann wrote:

Нет, это иконка CLEO4 smile

Ахах ) А я уже фантазию включил )

#56 Re: Вопросы по скриптингу » Вопрос » 23-09-2017 18:55

Asind wrote:

Если создать актёра, который будет враждебно относиться к игроку, то когда ты подходишь к актёру близко, то он начинает по тебе стрелять, но если ты будешь стрелять в него будучи на дистанции, то, даже если он будет смотреть прямо тебе в душу, всё равно не отреагирует, эдакая близорукость.
Вот в чём состоит мой вопрос -- как можно увеличить или уменьшить дистанцию зора актёра, лично мне нужно эту дистанцию уменьшить.
Желательно делать это относительно каждого актёра, но если есть возможность изменить дальнозоркость только сразу всем, то не велика потёря smile

Решается (частично или полностью) с помощью моделей поведения актёров.

Seemann,вижу у тебя на аве небольшую цифру 4 на логотипе СБ. Это намёк на 4-ю версию? smile

#57 Re: Вопросы по скриптингу » Один вопрос » 22-09-2017 17:59

Dyabda wrote:

А разве выгружать модель из памяти не надо?

Я привёл только минимум того, чтобы смена успешно осуществилась. Удалять или нет уже зависит от кода. Если модель не будет использоваться в дальнейшем, тогда нужно.

#58 Re: Вопросы по скриптингу » Один вопрос » 20-09-2017 13:23

trashmas wrote:

Игроку можно как то поставить скин SWATа ? (SA, scm)

Да:

Model.Load(#SWAT)
038B: load_requested_models
09C7: change_player $PLAYER_CHAR model_to #SWAT

#59 Re: Вопросы по скриптингу » Помогите, очень медленно работают анимации и деньги загружает долго. » 19-09-2017 19:14

lesharazg wrote:

Функцию свою он выполняет, но появился побочный эффект

Так, как вы используете переменные 32@ и 33@ не как таймер, то  это рано или поздно приведёт к вилету, или запишет не те данные куда-то.

lesharazg wrote:

и у меня стала очень медленно работать анимация персонажа

Не удивительно, раз Вы каждый цикл загружаете в память несколько внешних библиотек, где каждый раз происходит поиск методов. Плюс не понял для чего там форматирование строк с URL-адресом. Если там отправляется запрос, то не удивительно, что тормозит. Нужно отправлять его асинхронно, чтобы хоть как-то оптимизировать это "чудо".

Asind wrote:

мы тут не ассемблер изучаем.

Он не это имел ввиду )

#60 Re: Вопросы по скриптингу » Один вопрос » 17-09-2017 07:19

Dyabda wrote:

То какой адрес памяти отвечает за максимальное количество брони?

Какой адрес не знаю, но через обычный скрипт всё решается

// Для игрока:
055F: set_player $PLAYER_CHAR max_armour += 50 // задать
0945: get_player $PLAYER_CHAR max_armour_to $9595 // получить

// Для актёров:
035F: actor 98@ armour += 100 // задать
04DD: $9594 = actor $PLAYER_ACTOR armour // получить

#61 Re: Вопросы по скриптингу » Один вопрос » 13-09-2017 18:03

egor230 wrote:

Вы очень много сделали для скриптинга

Это очень скромный вклад )

egor230 wrote:

К сожалению, не мог скачать ссылка не рабочая.

На форуме ссылки нужно поменять. Скачать учебник по скриптингу Sanny Builder Вы сможете с архива. Но они уже устарели. Я более двух месяцев обновлял все статьи + были добавлены новые уроки, так что лучше с сайта читать.

egor230 wrote:

то переключения оружия не происходит

Я бы сделал так:

{$CLEO .cs}
0000: NOP

while true
wait 0

    for 0@ = 48 to 57
        if
        0AB0:   key_pressed 0@
        then
        0A8F: 1@ = 0@ - 48// int
        04B8: get_weapon_data_from_actor $PLAYER_ACTOR slot 1@ weapon 2@ ammo 3@ model 4@
            if
            0491:   actor $PLAYER_ACTOR has_weapon 2@
            then
            01B9: set_actor $PLAYER_ACTOR armed_weapon_to 2@
            end
        end
    end

end

В SA будет работать, а в Вайсе без понятия, не работал с ней.

#62 Re: Вопросы по скриптингу » Один вопрос » 13-09-2017 10:24

В SA так:

:sab
0AB1: call_scm_func @fun 3 0@ 1@ 2@ // var_ret 0   
wait 900 // задержка между переключениями оружия
return

:fun
Model.Load(0@)
repeat
wait 0
until Model.Available(0@)
01B2: give_actor $PLAYER_ACTOR weapon 1@ ammo 2@
Model.Destroy(0@)
0AB2: ret 0

В VC не помню поддерживает ли она вообще SCM-функции

#63 Re: Вопросы по скриптингу » Проблема с панелями. » 06-09-2017 19:10

00E1:   player 0 pressed_key 39

Нет такой клавиши 39. Лимит от 0 до 19 ( исключая 12 ). Возможно Вы хотели написать этот опкод:

0AB0:   key_pressed 39

?

#64 Re: Вопросы по скриптингу » Out of что? » 03-09-2017 13:28

Asind wrote:

А я ведь был так близок к финалу!:(

Создаёшь копию и перезапускаешь SB. Тоже иногда такое окно выскакивает.

#65 Re: Вопросы по скриптингу » О cam'ах » 18-08-2017 11:44

Asind wrote:

Ну, вы поняли smile

Поняли частично. Ну вот Вам кусок скрипта, который сохранит вам позицию камеры и её поинт:

if
0AB0:   key_pressed 49 // 1
then
068D: get_camera_position_to 1@ 2@ 3@
068E: get_camera_target_point_to 4@ 5@ 6@
0AF3: write_float 1@ to_ini_file "config.ini" section "CAM_DATA" key "CamPosX"
0AF3: write_float 2@ to_ini_file "config.ini" section "CAM_DATA" key "CamPosY"
0AF3: write_float 3@ to_ini_file "config.ini" section "CAM_DATA" key "CamPosZ"
0AF3: write_float 4@ to_ini_file "config.ini" section "CAM_DATA" key "PointPosX"
0AF3: write_float 5@ to_ini_file "config.ini" section "CAM_DATA" key "PointPosY"
0AF3: write_float 6@ to_ini_file "config.ini" section "CAM_DATA" key "PointPosZ"
end

Далее уще ищите себе Cam-Hack

#66 Re: Вопросы по скриптингу » Проблемы с маркерами. » 25-07-2017 11:00

Asind wrote:

Значит всё же стартер китайский:(

Да, подправить его не мешало б.

Asind wrote:

и как я понял, потому что иконки достигают лимита и больше ничего на карте появиться не может, так?

За иконки не знаю, но сферы точно имеют лимит на отрисовку.

#67 Re: Вопросы по скриптингу » Проблемы с маркерами. » 25-07-2017 10:50

У Вас слишком много таких иконок. Дело в том, что в стартере Вы создаёте в цикле бесчётное количество маркеров, соотвественно вы сможете удалить только последний.

:MyTrigger4
thread "MyTrigger4"
02A7: $TrigMarker4 = create_asset_radar_marker_with_icon 40 at 401.4604 2538.5925 16.5452

while $MyMission_Passed3 == 0 
wait 250 
if Player.Defined($PLAYER_CHAR) 
  then
  //02A7: $TrigMarker4 = create_asset_radar_marker_with_icon 40 at 401.4604 2538.5925 16.5452
  //$TrigMarker4 = Marker.CreateIconAndSphere(40, 401.4604, 2538.5925, 16.5452) 
  Marker.Disable($TrigMarker3) 

#68 Re: Вопросы по скриптингу » О специальных актёрах » 25-07-2017 10:29

Если у Вас "вылазит" не тот перс, то скорее всего Вы используете не ту модель. Для 'KENDL' нужно использовать #SPECIAL03, соответственно для 'janitor' - #SPECIAL02 и для 'sweet' - #SPECIAL04.

Asind wrote:

но сама KENDL это бета перс, по крайней мере я так думаю. модель "той самой" - cskendl

В бета версии использовалась модель кажется #BFUST для KENDL, затем её заменили на ту, которую мы знаем сейчас.

Asind wrote:

вот только она находится в файле с кат сценами, следовательно в игру не добавить.

Специальных актёров можно добавить сколько влезет. Я об этом даже статью написал. Другое дело, что модели с "cutscene.img" не подойдут для создания актёров в скрипте. Нужно их конвертировать.

Asind wrote:

Как жить? hmm

Я нашел сконвертированную модель KENDL. Можно скачать здесь.

#69 Re: Вопросы по скриптингу » О специальных актёрах » 24-07-2017 19:17

Asind wrote:

Мне нужна модель Кендел (Которая сестра CJ) но при загрузке #KENDL вылазит не тот перс

Неправильно загружаете модель специального актёра. Нет такой модели #KENDL. Есть 'KENDL':

023C: load_special_actor 'KENDL' as 1 // models 290-299
038B: load_requested_models

repeat
wait 0
until 023D:   special_actor 1 loaded

009A: 0@ = create_actor_pedtype 4 model #SPECIAL01 at 0.0 0.0 0.0   
0296: unload_special_actor 1

#70 Re: Вопросы по скриптингу » Один вопрос » 23-07-2017 11:54

Kim wrote:

Как заставить актёров, сидящих в транспорте атаковать врагов(ну или СЖ)? Не по опкоду, в которому актёр стреляет в координаты, а скажем как в миссии, где от Русских с BS на байке уходишь, в коде миссии ничего такого не нашёл, сделал тестовую миссию, но враги просто сидят.

А как Вы их заставляете атаковать? Возможно, этот опкод заставит:

0713: actor 50@ driveby_actor 41@ car -1 point 0.0 0.0 0.0 radius 100.0 0 0 firing_rate 90

#71 Re: Вопросы по скриптингу » Проблема с интерьерами. » 22-07-2017 08:49

судя по коду, у вас линк актёров в неактивный интерьер происходит

// перенос в интерьер 12
select_interior 12 // не 1
0860: link actor $PLAYER_ACTOR to interior 12 // 
0860: link actor $rico to interior 12

// перенос в открытое пространство
select_interior 0
0860: link actor $PLAYER_ACTOR to interior 0
0860: link actor $rico to interior 0

#72 Re: Вопросы по скриптингу » $Вопросы по пикапом$ » 17-07-2017 17:34

egor230 wrote:

Подскажите, пожалуйста, хочу создать пачку денег на точке, а игра вылетает.

Попробуйте так:

{$CLEO .cs}

//-------------MAIN---------------
//004F: create_thread @Noname_12

:Noname_12
wait 0
00D6: if
0256: player $PLAYER_CHAR defined
jf @Noname_12
04A6: 3@ = create_asset_money_pickup_at 109.39 -808.28 10.46  money 1 1

:2
wait 0
if
0214: pickup 3@ picked_up
jf @2
0215: destroy_pickup 3@
0109: player $PLAYER_CHAR money += 1 // 4@

//jump @Noname_12
//004E: end_thread
0A93: end_custom_thread

#73 Re: Вопросы по скриптингу » Проблема с выводом текстуры » 04-07-2017 10:43

Nikita592 wrote:

То ли я, такой глупый, то ли ещё что-то. Но вариант от wmysterio не работает sad(

Да работает он, тестировал с Вашим же TXD.
delete_after.png
Вот, бросаю архив. Файлы я немного переделал, в частности добавил иконку кулака и добавил условия когда нужно отображать иконку телефона и Джетпака. Переименовал TXD-файл, потому, что имя архива не должно превышать 7 символов, опкод 0390 требует это сделать, так как s-строки не могут иметь длину больше 7 символов.

#74 Re: Вопросы по скриптингу » Проблема с выводом текстуры » 03-07-2017 12:19

Nikita592 wrote:

Исправленный вариант не работает.

Попробуйте это:

{$CLEO} 
0826: enable_hud 0  
0390: load_txd_dictionary 'icon_weapon'  

for 4@ = 1 to 43
0AD3: 0@v = format "%d" 4@   
038F: load_texture 0@v as 4@ 
end

while true
wait 0 
    if
    Player.Defined($PLAYER_CHAR)
    then                  
    0470: 4@ = actor $PLAYER_ACTOR current_weapon
    0085: 5@ = 4@ // (int)
         
        if
        4@ == 32
        then   
        0A8F: 5@ = 4@ - 5 // int
        jump @WEAPON_DRAW_ICON
        end   
        
        if and
        4@ > 29
        33 > 4@
        then   
        0A8F: 5@ = 4@ - 2 // int   
        jump @WEAPON_DRAW_ICON
        end
        
        if
        4@ > 18
        then
        0A8F: 5@ = 4@ - 3 // int 
        end

        :WEAPON_DRAW_ICON       
        03F0: enable_text_draw 1
        03E3: set_texture_to_be_drawn_antialiased 1    
        038D: draw_texture 5@ position 555.0 35.0 size 35.0 40.0 RGBA 255 255 255 255
    end
end

Было бы намного проще, если имя текстуры соответствовало ID оружия. Цикл сократилбыся на 24 строчки. А так пришлось шаманить с переменными, чтобы ID текстуры выводился относительно ID оружия.

#75 Re: Вопросы по скриптингу » Один вопрос » 24-06-2017 11:14

Kim wrote:

0633: AS_actor 31@ exit_car
0633: AS_actor 32@ exit_car
0633: AS_actor 33@ exit_car

Проблема ясна, как день - вы используете переменные 32@ и 33@ для актёров, при этом забывая, что эти переменные отвечают за теймеры. Следовательно их значения будут изменяться. По-этому ссылок на актёров 32@ и 33@ не будет существовать. Попробуйте изменить переменные на другие.

Board footer

Powered by FluxBB