[ Новые сообщения · Участники · Правила форума · Поиск · 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)

BoPoH
Друзья
10.03.15 17:03
Offline
Цитата SanKing ()
0619: enable_actor $PLAYER_ACTOR collision_detection 0
Это, конечно, поможет, но игрок даже с места не сдвинется smile

SanKing
Друзья
12.03.15 09:53
Offline
Цитата BoPoH ()
Это, конечно, поможет, но игрок даже с места не сдвинется
Ты сам проверял или прочитал где-то?

Зелёный_Гоблин
Пользователи
12.03.15 22:37
Offline
Цитата BoPoH ()
Это, конечно, поможет, но игрок даже с места не сдвинется
В том то и дело этот я пробывал действует,но мне с хотьбой нужен,помогите если не трудно.

BoPoH
Друзья
16.03.15 23:55
Offline
Цитата SanKing ()
Ты сам проверял или прочитал где-то?
Проверял. Этот опкод просто отключает обработку физики у игрока. Следовательно и все перемещения.
Отредактировал BoPoH - Понедельник, 16.03.15, 23:56

BlackFulll380
Пользователи
20.03.15 14:22
Offline
Всем привет! Возможно ли сделать, чтобы банда заходила в интерьер? а то стоят за дверью.

SanKing
Друзья
20.03.15 18:51
Offline
Цитата BlackFulll380 ()
Всем привет! Возможно ли сделать, чтобы банда заходила в интерьер? а то стоят за дверью.
И тебе привет. Такой скрипт был годы назад, вот его код:

Код
{$CLEO .cs}

7@ = 0

:Noname_14
wait 100
092B: 0@ = group $PLAYER_GROUP member 0
092B: 1@ = group $PLAYER_GROUP member 1
092B: 2@ = group $PLAYER_GROUP member 2
092B: 3@ = group $PLAYER_GROUP member 3
092B: 4@ = group $PLAYER_GROUP member 4
092B: 5@ = group $PLAYER_GROUP member 5
092B: 6@ = group $PLAYER_GROUP member 6
0085: 8@ = 7@ // (int)
077E: get_active_interior_to 7@
if
803B:   not  8@ == 7@ // (int)
else_jump @Noname_415
wait 2050
Actor.StorePos($PLAYER_ACTOR, 9@, 10@, 11@)
11@ -= 1.0
if
056D:   actor 0@ defined
else_jump @Noname_187
0860: link_actor 0@ to_interior 7@
Actor.PutAt(0@, 9@, 10@, 11@)

:Noname_187
if
056D:   actor 1@ defined
else_jump @Noname_225
0860: link_actor 1@ to_interior 7@
Actor.PutAt(1@, 9@, 10@, 11@)

:Noname_225
if
056D:   actor 2@ defined
else_jump @Noname_263
0860: link_actor 2@ to_interior 7@
Actor.PutAt(2@, 9@, 10@, 11@)

:Noname_263
if
056D:   actor 3@ defined
else_jump @Noname_301
0860: link_actor 3@ to_interior 7@
Actor.PutAt(3@, 9@, 10@, 11@)

:Noname_301
if
056D:   actor 4@ defined
else_jump @Noname_339
0860: link_actor 4@ to_interior 7@
Actor.PutAt(4@, 9@, 10@, 11@)

:Noname_339
if
056D:   actor 5@ defined
else_jump @Noname_377
0860: link_actor 5@ to_interior 7@
Actor.PutAt(5@, 9@, 10@, 11@)

:Noname_377
if
056D:   actor 6@ defined
else_jump @Noname_415
0860: link_actor 6@ to_interior 7@
Actor.PutAt(6@, 9@, 10@, 11@)

:Noname_415
jump @Noname_14



Отредактировал SanKing - Пятница, 20.03.15, 18:52

mfisto
Друзья
20.03.15 20:31
Offline
Поправлю только лишь на одном опкоде
Код
077E:

Вместо него лучше и правильнее использовать опкод
Код
09E8: 7@ = actor $PLAYER_ACTOR active_interior

Дело в том что ситуация смены инетерьера бывает не так очевидна, как нам показывает экран. Скажем в тех же заставках меняется бывает лишь интерьер текущего экрана, когда игрок все еще нах-ся в предыдущем интерьере. Поэтому подмена интерьера для охраны корректна с опкодом
Код
09E8:

BlackFulll380
Пользователи
21.03.15 12:59
Offline
Спасибо SanKing и mfisto за код! ;)

SanKing
Друзья
22.03.15 20:51
Offline
Цитата mfisto ()
Поправлю только лишь на одном опкоде 077E. Вместо него лучше и правильнее использовать опкод 09E8: 7@ = actor $PLAYER_ACTOR active_interior.  Дело в том что ситуация смены инетерьера бывает не так очевидна, как нам показывает экран. Скажем в тех же заставках меняется бывает лишь интерьер текущего экрана, когда игрок все еще нах-ся в предыдущем интерьере. Поэтому подмена интерьера для охраны корректна с опкодом 09E8.
Не могу не согласиться, отмечу лишь, что код не мой.

Vital
Модераторы
Скриптер
01.04.15 18:51
Offline
Я вот по какому вопросу. Player.defined проверяет не только то, что игрок создан, но и то, что он не убит и не арестован. Как известно, ставить player.defined с условиями, касающимися игрока ($PLAYER_ACTOR/CHAR) нежелательно, так как игрок может быть ещё не создан, и в таком случае отсутствие игрока вызовет вылет при других условиях. Но можно ли совместить NOT player.defined с другими условиями тогда, когда игрок уже создан? Ведь в таком случае останется два случая: игрок убит или арестован, - но при этом он уже есть.
Если в коде, то примерно так:

Код
if
player.Defined(0)
then
...
     if or
     not player.Defined(0)
     not actor.Driving($PLAYER_ACTOR)
     then
     ...
     end
...
end

BoPoH
Друзья
01.04.15 19:35
Offline
А кто мешает в самом начале скрипта поставить такой код:

Код
while not player.defined($PLAYER_CHAR)
wait 0
end
Или я неправильно понял суть вопроса?

Vital
Модераторы
Скриптер
02.04.15 18:10
Offline
ВоРоН, я имею в виду немного другое. В начале я и так всегда делаю условие, что игрок есть. Я имею в виду вот что: player.defined можно использовать вместо двух условий - not actor.dead и 8741 (not busted), что очень удобно. Но это условие не советуют ставить с другими в одном блоке IF по вышеописанной причине. А вот можно ли его отрицательное поставить с другими тогда, когда игрок уже был создан и найден, просто чтобы не писать два условия (not actor.dead и 8741 (not busted)) вместо одного компактного? Ведь wasted_or_busted нельзя использовать вне миссий.
P.S. На сайте GTAG в описании сказано, что иначе этот опкод звучит как IS_PLAYER_PLAYING, то есть как раз 3 условий: найден, не мёртв, не арестован.
Отредактировал Vital - Четверг, 02.04.15, 18:14

BoPoH
Друзья
02.04.15 19:13
Offline
Конечно можно, почему нет. Мы ведь уже знаем, что игрок создан, значит этот пункт в проверке уже будет выполняться в любом случае.

Slivkin-Sergey
Модераторы
07.04.15 18:41
Offline
А есть ли возможность в некоем квадратном участке пространства создать несколько актёров в случайных местах, не прибегая к помощи массивов?

BoPoH
Друзья
08.04.15 04:11
Offline
Цитата Slivkin-Sergey ()
А есть ли возможность в некоем квадратном участке пространства создать несколько актёров в случайных местах, не прибегая к помощи массивов?
Что подразумевается под "не прибегая к помощи массивов"?
Нужно ли как-то управлять созданными актёрами? Нужно ли их самостоятельно удалять?
В общем случае можно применить что-то вроде такого:


Код
for 0@ = 1 to 10
     0208: 2@ = random_float_in_ranges -5.0 5.0
     0208: 3@ = random_float_in_ranges -5.0 5.0
     0208: 4@ = random_float_in_ranges -5.0 5.0
     actor.StorePos($PLAYER_ACTOR, 5@, 6@, 7@)
     005B: 2@ += 5@  // (float)
     005B: 3@ += 6@  // (float)
     005B: 4@ += 7@  // (float)
     actor.Create(1@, 4, 1, 2@, 3@, 4@)
end

Slivkin-Sergey
Модераторы
08.04.15 13:24
Offline
Ну, я когда-то спрашивал, как с помощью массивов с координатами создавать актёров в случайных местах. Теперь мне нужно то же, но без массивов - т.е. в случайных местах в квадратной зоне создать 20 актёров.

BoPoH
Друзья
08.04.15 15:03
Offline
Цитата Slivkin-Sergey ()
Ну, я когда-то спрашивал, как с помощью массивов с координатами создавать актёров в случайных местах. Теперь мне нужно то же, но без массивов - т.е. в случайных местах в квадратной зоне создать 20 актёров.
Я так и не понял, нужно ли с этими актёрами что-то делать или просто создать?
Если просто создать, то код выше должен подойти.

Slivkin-Sergey
Модераторы
08.04.15 19:25
Offline
Нужно их умерщвить. Ну, я так понимаю, для этого достаточно добавить опкод убийства актёра в конец цикла, перед end.

BoPoH
Друзья
08.04.15 19:51
Offline
Цитата Slivkin-Sergey ()
Нужно их умерщвить. Ну, я так понимаю, для этого достаточно добавить опкод убийства актёра в конец цикла, перед end.
Абсолютно верно.

SINGER
Проверенные
24.04.15 21:10
Offline
Ребята, кто-то может создать скрипт, который введет в игру розыск авто копами. То есть если ГГ угнал авто на глазах у педов, то дают сразу 2 звезды розыска. Если же ГГ угнал авто ночью,когда никого не было на улице или в каком-то безлюдном переулке, то розыск автомобиля будет производится чуть позже, когда хозяин заявит копам. (В момент начала розыска начнут мигать две звезды. Стоит Вам показаться на глаза копам, как звезды активируются и Вас начнут преследовать. Если авто бросить, то звезды исчезнуть(только в том случае, если нет погони, то есть звезды мигали)). Нужно авто перекрасить и тогда можно спокойно кататься. А еще лучше, чтобы краденое авто не только красили но и делали на него поддельные документы, что будет стоить в зависимости от марки авто. Я бы делал минимум денег за такую работу самой фиговой развалюхи 7500-9500$, а дальше больше в зависимости от крутости авто. Мод добавил бы не только реализма, но и заставил бы "владельцев" краденых авто их беречь.
Знаю, что похожее было в скрипте "WANTED", но здесь более круче получилось бы. "WANTED" немного не то, да и работает через раз...  wacko

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