[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder (Вы можете получить ответы на вопросы по SB)
Вопросы по скриптингу Sanny Builder
wmysterio
Администраторы
Скриптер
22.11.11 21:52
Offline
Если у вас возник вопрос по скриптингу Sanny Builder, обращайтесь! Мы постараемся решить вашу проблему wink Это ещё не значит, что все прям бросятся решать во чтобы то не стало, но ответ вы сможете вы получить как вариант решения или как невозможность или сложность решения.
УВАЖАЕМЫЕ ПОЛЬЗОВАТЕЛИ! ПРОСЬБА КОД СКРИПТОВ ПОМЕЩАТЬ В КОНСТРУКЦИЮ КОДА:

или

Также указывайте полный код скрипта, иначе причина ошибок может быть и не выявлена.
Прикрепления: 0248203.png(0.9 Kb) · 9085525.png(0.2 Kb)

wmysterio
Администраторы
Скриптер
14.12.14 12:10
Offline
Цитата Sweeper ()
Ну, если я напишу, то ничего особо не изменится?
Изменится. По-тому, что от задуманого зависит алгоритм.

Цитата Sweeper ()
Короче, если игрок не в зоне, то транспорт нужно убрать.

Тогда нужно так:
Код
:cozdanie_2   
wait 0    
if  
80FE: not actor $PLAYER_ACTOR sphere 0 in_sphere -74.9369 74.8745 3.1172 radius 200.0 200.0 100.0    
jf @cozdanie_2  
if
056E:   car 1@ defined
then
car.RemoveReferences(1@)    
car.Destroy(1@)
end
if
056E:   car 2@ defined
then
car.RemoveReferences(2@)    
car.Destroy(2@)
end
if
056D:   actor $PITER defined
then
actor.RemoveReferences($PITER)    
actor.DestroyInstantly($PITER)   
end

//...
Если игрок не в зоне, то удаляем актёра и транспорт, и удаляет в том случаи, если каждый из них существует

Sweeper
Проверенные
14.12.14 12:10
Offline
Все, спасибо за помощь, скрипт работает. А если я захочу, чтобы после уничтожения транспорта и человека, они снова появились, как это сделать?

wmysterio
Администраторы
Скриптер
14.12.14 12:20
Offline
Цитата Sweeper ()
Все, спасибо за помощь, скрипт работает. А если я захочу, чтобы после уничтожения транспорта и человека, они снова появились, как это сделать?

Только что ходел это написать. Вот, чтобы появлялись когда игрок в зоне и удалялись когда нет:
Код
{$CLEO .cs}   
0000: NOP   

:PROV   
thread 'PROV'   
model.Load(#LINERUN)   
model.Load(#WMYCLOT)   
model.Load(#WALTON)   
038B: load_requested_models  // загружаем все модели в память

:PROV_1   
wait 0   
if // если игрок в зоне
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere -74.9369 74.8745 3.1172 radius 200.0 200.0 100.0   
jf @PROV_1 // то создаём субъекты
1@ = car.Create(#WALTON, -77.9369, 74.8745, 3.1172)   
car.Angle(1@) = 246.1003   
2@ = car.Create(#LINERUN, -52.0774, 78.5, 3.1096)   
car.Angle(2@) = 263.3105   
$PITER = actor.Create(4,#WMYCLOT, -74.9369, 74.8745, 3.1172)   

:PROV_2
wait 0  
if // если игрок не в зоне
80FE: not actor $PLAYER_ACTOR sphere 0 in_sphere -74.9369 74.8745 3.1172 radius 200.0 200.0 100.0   
jf @PROV_2 // то
if  
056E:   car 1@ defined // если транспорт сущестувет  
then  
car.RemoveReferences(1@) // то чистим ссылки     
car.Destroy(1@) // и удаляем  
end  
if  
056E:   car 2@ defined // если транспорт сущестувет  
then  
car.RemoveReferences(2@) // то чистим ссылки      
car.Destroy(2@) // и удаляем   
end  
if  
056D:   actor $PITER defined // если актёр сущестувет
then  
actor.RemoveReferences($PITER) // то чистим ссылки    
actor.DestroyInstantly($PITER) // и удаляем   
end  
jump @PROV_1 // прыгаем на метку для создания актёров при условии или ставим опкод 0A93 и завершаем поток

Sweeper
Проверенные
14.12.14 13:34
Offline
Теперь вот: я хочу актеру присвоить анимацию, типа он машину ремонтирует, а потом вылазит из под нее. Названия анимаций знаю, как теперь это в скрипте сделать? и на картинку посмотри

Добавлено (14.12.14, 12:34)
---------------------------------------------
Как мне этого актера под машину запихнуть?

Отредактировал Sweeper - Воскресенье, 14.12.14, 13:27
Прикрепления: 8813209.jpg(139.7 Kb)

wmysterio
Администраторы
Скриптер
14.12.14 14:34
Offline
Цитата Sweeper ()
Как мне этого актера под машину запихнуть?
Для начала, определи место где актёр долен ремонтировать транспорт. Получи координаты и угол разворота(CTRL+SHIFT+C и CTRL+SHIFT+E в СБ). Вот, создай актёра с этими координатами и углом:
Код
$PITER = actor.Create(4,#WMYCLOT, -74.802, 73.3269, 2.1172)   
actor.Angle($PITER)= 246.7695
и посмотри результат

Sweeper
Проверенные
14.12.14 17:07
Offline
А машину сверху ставить?

wmysterio
Администраторы
Скриптер
14.12.14 17:14
Offline
Цитата Sweeper ()
А машину сверху ставить?
Ничего больше менять не нужно. Просто ЗАМЕНИ блок создания актёра на тот, что я написал выше.

Sweeper
Проверенные
14.12.14 17:31
Offline
Да ты чертов гений! Все так, как я хотел, но, когда я взорвал машину, актер отлетел и их там 3 было

Добавлено (14.12.14, 16:31)
---------------------------------------------
Почему так?

Прикрепления: 4945438.jpg(115.1 Kb)

wmysterio
Администраторы
Скриптер
14.12.14 17:57
Offline
Цитата Sweeper ()
Почему так?
Это моя вина. Я опкод попутал и провереля на существование автомобиля с именем $PITER. Что-бы не двоилось нужно этот код:
Код
if  
056D:   actor $PITER defined
then  
actor.RemoveReferences($PITER)  
actor.DestroyInstantly($PITER)  
end
Заменить это:
Код
if  
056E: actor $PITER defined // здесь ошибка
then  
actor.RemoveReferences($PITER)  
actor.DestroyInstantly($PITER)  
end

Slivkin-Sergey
Модераторы
22.12.14 06:48
Offline
BoPoH, не мог бы ты скинуть свою базу адресов gta_sa.exe? А то неудобно по каждому мелкому вопросу людей беспокоить (в том числе и тебя).

BoPoH
Друзья
23.12.14 18:22
Offline
Цитата Slivkin-Sergey ()
BoPoH, не мог бы ты скинуть свою базу адресов gta_sa.exe? А то неудобно по каждому мелкому вопросу людей беспокоить (в том числе и тебя).
Ты имеешь ввиду базу IDA?

Slivkin-Sergey
Модераторы
24.12.14 11:26
Offline
Именно её.

softcrasoft
Пользователи
24.12.14 12:40
Offline
Всем привет!
Интересует    3 таких вопроса:
1. Подскажите пожалуйста, вот я делаю простой скрипт на создание октера на координатах у входа в полицейский участок, как можно сделать, чтоб если кто-то подходит ко входу в полицейский участок, допустим воспроизводился звук из папки sounds police.mp3, и чтоб этот звук был привязан к этому октеру?
2. Как можно сделать скрипт, чтоб было 2 режима:
При нажатии на цифру на основной клавиатуре 1, чтоб был режим, когда оружие может смотреть только в направлении людей, то есть по центру, чтоб нельзя было сделать ниже, или выше;
А на два чтоб оружие было на уровне машин.
3. И последний вопрос, как сделать допустим чтоб при нажатии на тройку на основной клавиатуре, чтоб карл навел оружие на октера, который ближе к нему.
Решить задачи нужно в одиночной игре.
Спасибо!
Отредактировал softcrasoft - Среда, 24.12.14, 12:43

BoPoH
Друзья
25.12.14 23:00
Offline
@softcrasoft, это тема для помощи по отдельным вопросам из скриптинга. Твои вопросы больше похожи на заказы скриптов.

wmysterio
Администраторы
Скриптер
28.12.14 16:35
Offline
softcrasoft,
1) смотри эту статью, последний код. Там только проверку на коодинаты нужно подставить вместо опкода 0AB0.
2 и 3 пока посмотрю что можно сделать.

ВНИМАНИЕ, ПОЛЬЗОВАТЕЛИ!
С этого момента, заказы скриптов будут проходить здесь, так как всё чаще и чаще посты не касаются темы.

BlackFulll380
Пользователи
06.01.15 00:11
Offline
Всем привет! 
Возможно ли добавить шляпу или кофту в игру без замены? например в магазине "Binco".

SanKing
Друзья
06.01.15 14:54
Offline
Цитата BlackFulll380 ()
Возможно ли добавить шляпу или кофту в игру без замены?
На этом сайте есть урок:
ссылка.

BlackFulll380
Пользователи
06.01.15 17:24
Offline
Цитата SanKing ()
На этом сайте есть урок:
спасибо!

pro12
Пользователи
06.01.15 19:09
Offline

Код
{$CLEO .cs}
thread 'Actor'
:Actor
wait 0
if
player.Defined(0)
jf @Actor
if and
not actor.Dead($PLAYER_ACTOR)
not actor.Driving($PLAYER_ACTOR)
0AB0:   key_pressed 57
jf @Actor
:Actor2
repeat
wait 100
until player.Defined(0)
model.Load(#micro_uzi)
Model.Load(#FAM2)
038B: load_requested_models
if
Model.Available(#micro_uzi)
Model.Available(#FAM2)
04C4: create_coordinate 4@ 5@ 6@ from_actor $PLAYER_ACTOR offset 0.0 1.2 0.0
3@ = Actor.Create(Gang2,#FAM2, 4@, 5@, 6@)
7@ = Marker.CreateAboveActor(3@)
0631: put_actor 3@ in_group $PLAYER_GROUP
02E2: set_actor 3@ weapon_accuracy_to 100

0631: put_actor 3@ in_group $PLAYER_GROUP
0709: set_decision_maker 3@ on_event 9 task 413 respect 0.0 hate 100.0 like 0.0 dislike 0.0 in_car 0 on_foot 1
0709: set_decision_maker 3@ on_event 41 task 413 respect 0.0 hate 100.0 like 0.0 dislike 0.0 in_car 0 on_foot 1
01B2: give_actor 3@ weapon 28 ammo 6090 // Load the weapon model before using this
0713: actor 3@ driveby_actor -1 car -1 point 952.92 -1102.99 22.85 radius 100.0 4 1 firing_rate 90
if and
Model.Destroy(#micro_uzi)
Model.Destroy(#FAM2)
jf      @Actor2            
actor.Health(3@)= 1000
04F7: status_text $HLT 0 line 1 'TEXT4'
while true
wait 0
$HLT = actor.Health(3@)
                    if or
                    not player.Defined(0)
                    8104:   actor $PLAYER_ACTOR near_actor 3@ radius 500.0 500.0 50.0 sphere 0
                    then
                    3@ = @Actor
                    break
                    else
                    if
                    actor.Dead(3@)
                    then
                    
                    break                    
                    end
                    end
end
0151: remove_status_text $HLT
wait 1
actor.RemoveReferences(3@)
jump @Actor2
end_thread
Создал копа на охрану CJ,как можно его заставить стрелять по машине преступника как в миссии полиции ?
Отредактировал pro12 - Вторник, 06.01.15, 19:12

SanKing
Друзья
07.01.15 14:05
Offline
Цитата pro12 ()
Создал копа на охрану CJ,как можно его заставить стрелять по машине преступника как в миссии полиции ?
Поставь актёру тип COP.

Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder (Вы можете получить ответы на вопросы по SB)
Поиск: