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

или

Также указывайте полный код скрипта, иначе причина ошибок может быть и не выявлена.

Внимание! От этого момента тема предназначена ещё и для заказов скриптов и миссий. Я это сделал по одной причине - пользователи постоянно путают/или не ищут темы и приводят заказ здесь. Теперь этой путаницы не будет. Здесь можно проводить заказы, но Вы должны указать в начале поста текст "НА ЗАКАЗ". Постарайтесь как можно детальнее объяснить суть скрипта.
Прикрепления: 0248203.png(1Kb) · 9085525.png(0Kb)

Temptationcool
Пользователи
16.03.12 03:16
Offline
Здравствуйте! Сразу скажу, уроки обалденные!!!
Пять балов!!! У меня пока несколько вопросов:
Изучая уроки я попробовал написать вот такое:

И поток:

Предварительно закинув в игру собственный объект "yasik", вот скрин:

Как видно на скрине, я запрыгнул СЖеем в этот ящик("yasik")
А из скрипта видно что при нажатии на клавишу "L"
0AB0: key_pressed 76
обьект "yasik" перемещается по си X!
Только вот при перемещении ящика СЖ остается на месте!
Как бы выпадает из него
Как можно сделать чтобы ящик перемещался вместе с СЖ???
Может коллизия какая или привязка есть?

Вот еще вопросы:
08E9: set_object $Obj liftable 1 - делает объект поднимаемым
Но не получаеться это с ящиком!??
Также и с массой объекта,
071F: set_object $Obj mass 10
можно подробнее в каких случаях работают
эти команды???

И может знаете? Почему при загрузке игры,
экран загрузки как бы мерцает! Загрузка еще не завершилась, а игра уже началась!
Как избавиться от этого?
Заранее Благодарю и Огромное спасибо за уже написанные уроки!!!!!

wmysterio
Администраторы
Скриптер
17.03.12 03:54
Offline
Temptationcool, привет. постараюсь решить этот вопрос с ящиком, что бы перемещался вместе с СЖ.
Очень часто объекты так сказать привязывают(приклеивают) к СЖ. Я об этом не говорил в уроках.

069B: attach_object $OBJ to_actor $ACTOR with_offset 0.0 0.0 -1.0 rotation 0.0 0.0 0.0

Здесь:
$OBJ - имя объекта
$ACTOR - имя актёра к которому будет прицеплен объект
0.0 0.0 -1.0 - указывается где именно должен прицепится объект(в этом случаи у ног по средине)
0.0 0.0 0.0 - указываются углы поворота (если не планируется поворачивать объект, то можно так и оставить)


После этого нужно двигать СЖ а не объект. Так как объект прицеплен к СЖ, то он тоже будет двигаться. Скрипт должен выглядить примерно так:
Code

:MOVEE
thread 'MOVEE'
wait 0
1@ = 2.0
2@ = 1.0

:MOVEE_1
wait 0
if
0AB0: key_pressed 76
then
069B: attach_object $TRAMPLIN to_actor $PLAYER_ACTOR with_offset 0.0 0.0 -1.0 rotation 0.0 0.0 0.0   
actor.PutAt($PLAYER_ACTOR, 1@, 2.0, 20.0)
end

jump @MOVEE_1
end_thread


Quote (Temptationcool)
Также и с массой объекта,
071F: set_object $Obj mass 10

Ну маса это больше для физики наверное задаётся. Например чем больше масса, тем быстрее будет падать объект с горы и в прочих ситуациях
Quote (Temptationcool)
08E9: set_object $Obj liftable 1 - делает объект поднимаемым

Если честно, то я ниразу не пользовался этим опкодом. Постараюсь разузнать какие объекты можно поднимать, а какие нет.

KiLLeR96
Модераторы
Модератор
18.03.12 16:27
Offline
Добрый день, у меня вот такая проблемка : создал машину и полосу жизни. А вот как привязать полосу к машине не знаю. Помогите плиз. Заранее спасибо smile
МоДиРатОр)))000)))))

wmysterio
Администраторы
Скриптер
18.03.12 20:49
Offline
Quote (УбивашкА)
Добрый день, у меня вот такая проблемка : создал машину и полосу жизни. А вот как привязать полосу к машине не знаю. Помогите плиз. Заранее спасибо

привет. постараюсь тебе помочь smile сначала нам нужно узнать количество жизни машины, потом привязать эту переменную к полоске. Я сделал скрипт, что если сядешь в тачку, то будет показывать жизнь машины:

Code
:CAR
thread 'CAR'
wait 0
0@ = 0

while true
      if
      actor.Driving($PLAYER_ACTOR)
      then
          if   
          0@ == 0
          then   
          03C0: 1@ = actor $PLAYER_ACTOR car   
          $HEALTH = car.Health(1@)     
          04F7: status_text $HEALTH type 0 line 1 GXT ' ' // Score    
          0@ = 1
          end
          03C0: 1@ = actor $PLAYER_ACTOR car   
          $HEALTH = car.Health(1@)
          $HEALTH += -250
      else
          if
          0@ == 1
          then
          0151: remove_status_text $HEALTH
          0@ = 0
          end
      end
wait 0
end


Единственный проблем - это то что отображаются числа а не полоска. Нужно в оригинальном мейне посмотреть как правильно синхронизировать. Думаю это не займёт много времени.

А вот дистанцию датчик отлично считает! В чем прикол я даж не знаю )

KiLLeR96
Модераторы
Модератор
18.03.12 20:56
Offline
Cпасибо, но мне надо чтобы жизни появлялись вместе с машиной а не когда садишся в нее(на скрине моем машина как-бы для уничтожения)
МоДиРатОр)))000)))))

wmysterio
Администраторы
Скриптер
18.03.12 22:11
Offline
УбивашкА, вот скрипт:
показывает жизнь машины(машина должна существовать):
Code
{ после того как создали транспорт добавляем эти строки: }
:CAR_1
wait 0
$HEALTH = car.Health($CAR)
03C4: set_status_text $HEALTH type 1 GXT ' '

:CAR_2
wait 0

if OR
0119:   car $CAR wrecked           
02BF:   car $CAR sunk           
then
jump @CAR_3
end

$HEALTH = car.Health($CAR)
$HEALTH += -250
$HEALTH /= 7            
jump @CAR_2           

:CAR_3                   
wait 0
0151: remove_status_text $HEALTH           
{ ... }


$CAR - поменяете на имя машины у вашем скрипте

если машина будет уничтожена или начнёт тонуть, то статус текст уберётся с экрана

KiLLeR96
Модераторы
Модератор
19.03.12 00:50
Offline
Цитата
$HEALTH += -250
$HEALTH /= 7

Спасибо, только еще вопрос: что значат эти строки?

wmysterio
Администраторы
Скриптер
19.03.12 01:07
Offline
Quote (УбивашкА)
Спасибо, только еще вопрос: что значат эти строки?

Как известно, по умолчанию, в машины 1000 жизней. Если в тачки меньше 250 жизней, то она начинает гореть, следовательно в тачки только 750 жизней, при которых она не начнет гореть. Мы отняли 250 от текущего здоровья машины, что бы узнать точное к-во жизни в тачки. Дальше, я сам честно, удивился что нужно делить на число 7. Оказывается что бы работал нормально счетчик нужно разделить жизнь на число 7, которое я экспериментальным путём нашел wink Всё вместе составляет индикатор жизни авто.

Надеюсь вас не запутал таким ответом biggrin

KiLLeR96
Модераторы
Модератор
19.03.12 19:13
Offline
Да не, нормально. В общих чертах понятно

Добавлено (19.03.2012, 19:13)
---------------------------------------------
А как присвоить такой индикатор ped'у? help

МоДиРатОр)))000)))))

wmysterio
Администраторы
Скриптер
19.03.12 19:23
Offline
Quote (УбивашкА)
А как присвоить такой индикатор ped'у?

Code
$HEALTH = actor.Health(0@)
03C4: set_status_text $HEALTH type 1 GXT ' '  

:ACTOR_2
wait 0
if   
actor.Dead(0@)
then
jump @ACTOR_3
end
$HEALTH = actor.Health(0@)
jump @ACTOR_2

:ACTOR_3
wait 0
0151: remove_status_text $HEALTH

0@ - уже созданный актёр.

KiLLeR96
Модераторы
Модератор
19.03.12 19:43
Offline
значит в этом случае прибавление и деление делать не надо?
МоДиРатОр)))000)))))

wmysterio
Администраторы
Скриптер
19.03.12 19:54
Offline
Quote (УбивашкА)
значит в этом случае прибавление и деление делать не надо?

не надо. работает и без арифметических действий над жизнями. это связано с тем, что у актёра намного меньше жизней чем в транспорта

KiLLeR96
Модераторы
Модератор
21.03.12 17:01
Offline
wmysterio, к тебе вопрос: как добавить значок в hud.txd не заменяя ни одного и как потом загрузить его в скрипт?

Добавлено (21.03.2012, 17:01)
---------------------------------------------
а то попробовал добавить новый значок и прога крашнулась

МоДиРатОр)))000)))))

wmysterio
Администраторы
Скриптер
21.03.12 19:28
Offline
Quote (УбивашкА)
к тебе вопрос: как добавить значок в hud.txd не заменяя ни одного и как потом загрузить его в скрипт?
а то попробовал добавить новый значок и прога крашнулас

я не рекомендую добавлять или удалять файлы в hud.txd, так как он используется в игре с самого начала. Изменять его можно, но добавлять не рекомендуется. Можно привести небольшой пример. Каждая иконка имеет свой номер в СБ. Если добавить новую иконку, то нумерация нарушится и игра не загрузится.

Однако можно создать новый *.txd файл и закинуть его в папку /models/txd, затем загрузить его скриптом(урок об этом я сделаю несколько позже), что вывести нужную текстуру на экран.

KiLLeR96
Модераторы
Модератор
21.03.12 19:43
Offline
спасибо, а можно использовать в скрипте actor.dead(#Model) вместо аctor.dead(1@)?
Отредактировал УбивашкА - Среда, 21.03.12, 19:43
МоДиРатОр)))000)))))

wmysterio
Администраторы
Скриптер
21.03.12 19:46
Offline
УбивашкА, нельзя. это совсем разные классы: actor и model

это то же самое, что спросить:" телефон "Камаз" убит?" smile

KiLLeR96
Модераторы
Модератор
21.03.12 20:48
Offline
Как загрузить созданный fxt в скрипт?

Добавлено (21.03.2012, 20:48)
---------------------------------------------

Quote (wmysterio)
УбивашкА, нельзя. это совсем разные классы: actor и model

это то же самое, что спросить:" телефон "Камаз" убит?"

А как сделать чтобы при убийстве определенного педа добавлялась единица в счетчик и можно ли это сделать не загружая модель?
Отредактировал УбивашкА - Среда, 21.03.12, 20:43
Прикрепления: 5623465.jpg(26Kb)
МоДиРатОр)))000)))))

wmysterio
Администраторы
Скриптер
21.03.12 20:52
Offline
УбивашкА, Созданный файл кидаем у папку cleo/cleo_text:

потом, что бы тексты отображались в игре нужно скачать специальный плагин, который будет помогать отображать текст в игре: GXTHook.cleo и кинуть его в папку cleo. А дальше уже использовать FXT-записи в скриптах, причем загружать ничего не нужно. Если добавили запись во время игры, то что бы текст начал показываться в игре, то нужно перезапустить игру(полностью выйти и снова запустить)
Прикрепления: 7685847.png(13Kb)

KiLLeR96
Модераторы
Модератор
21.03.12 20:52
Offline
Я создал статус текст "Копов убито: ~1~\100". Как сделать чтобы при убийстве копа добавлялась единица к счетчику?
МоДиРатОр)))000)))))

wmysterio
Администраторы
Скриптер
21.03.12 20:54
Offline
Quote (УбивашкА)
А как сделать чтобы при убийстве определенного педа добавлялась единица в счетчик и можно ли это сделать не загружая модель?

определённого - это любого или конкретного?
кстати, если интересует, есть опкод, который проверяет модель актёра:
02F2: actor 1@ model == #BMYPOL1 // (нужно что бы актёр был инициализирован(объявлен))

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