[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 124 из 128«12122123124125126127128»
Форум » Игры серии 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)

Slivkin-Sergey
Модераторы
02.03.16 19:48
Offline
Цитата wmysterio ()
Это когда создавать объект, предварительно не загрузив модель.

Не знал, что так можно.

Спасибо за разъяснения. Правда, у меня тут ещё одна проблема возникла (как обычно, блин), может, ты тоже что-то знаешь: конкретный кусок карты не загружается. Вот просто, тупо ни в какую. Загружаются просто лоды, текстуры и коллизия - только в мечтах. Причём я помещаю туда игрока, делаю refresh_game_renderer, - нет, игре всё по-барабану. Персонаж перемещается туда и начинает бесконечно падать. Упал вниз - телепортировался назад, а коллизии и текстур нет, падай ещё. И радар при этом при всём тоже не работает, то есть он весь прозрачный, кроме метки игрока, как будто я в интерьере, хотя происходит это на улице (select_interior 0 я делал). Я уже голову сломал в попытках разобраться - ни в какую...

wmysterio
Администраторы
Скриптер
03.03.16 07:03
Offline
Slivkin-Sergey, для камер тоже освежал местность?

Slivkin-Sergey
Модераторы
03.03.16 16:15
Offline
wmysterio, я там намеренно убрал все скриптовые камеры, сделал Restore_WithJumpCut - всё равно ни в какую. Вот сейчас ещё экспериментальным путём выяснил, что область прогружается лишь тогда, когда поблизости есть скриптовый актёр (с хэндлом, не пешеход). Переустановка игры и CLEО не помогает. А самое интересное, при копировании кода в обычный .cs скрипт (я-то в scr.scm пишу) всё шустренько прогружается без единого актёра.

GoldFish
Пользователи
03.03.16 20:57
Offline
Прив всем, вопрос по точкам путей.
Как они работают?
Поч они посередине дороги когда машины едут по двум полосам дороги?

wmysterio
Администраторы
Скриптер
04.03.16 08:20
Offline
Цитата GoldFish ()
Прив всем, вопрос по точкам путей.
Как они работают?
Поч они посередине дороги когда машины едут по двум полосам дороги?
Потому, что путь имеет тип - для 1-й машины, для 2-х машин и для 4-х машин (одностороннее движение, двустороннее движение, магистрали с 4-мя полосами, до две полосы на каждый участок дороги ). Сам путь имеет точку и находится по центру дороги(обычно так). В зависимости от типа дороги идёт вычисление точки для соответствующей стороны дороги - так сказать ведётся поиск центра каждой полосы дороги. Игра автоматически указывает транспорту по какой стороне дороги или её участка ехать.

GoldFish
Пользователи
05.03.16 01:28
Offline
Цитата wmysterio ()
Потому, что путь имеет тип - для 1-й машины, для 2-х машин и для 4-х машин (одностороннее движение, двустороннее движение, магистрали с 4-мя полосами, до две полосы на каждый участок дороги ). Сам путь имеет точку и находится по центру дороги(обычно так). В зависимости от типа дороги идёт вычисление точки для соответствующей стороны дороги - так сказать ведётся поиск центра каждой полосы дороги. Игра автоматически указывает транспорту по какой стороне дороги или её участка ехать.
мм а как узнать или где найти этот флаг указывающий тип движения по дороги?

wmysterio
Администраторы
Скриптер
05.03.16 10:23
Offline
Цитата GoldFish ()
мм а как узнать или где найти этот флаг указывающий тип движения по дороги?
Я только знаю, что через память можно узнать какая полоса используется, на форуме СБ кто-то писал. В структуре авто вроде можно подучить флаг. Если нужно вплоть до миллиметра указать маршрут, то лучше всего использовать RRR-пути, как я это делал в проекте "Неизвестный". Вот видео:

Другой вариант - по-очереди указывать точки.

KiLLeR96
Модераторы
Модератор
05.03.16 13:50
Offline
Как сделать это же, только через память?
Код
009A: 2@ = create_actor_pedtype 4 model #MALE01 at 0.0 0.0 0.0



Slivkin-Sergey
Модераторы
06.03.16 20:20
Offline
Так что, есть ли варианты по моей проблеме? Я до сих пор в растерянности.

Добавлено (06.03.16, 12:47)
---------------------------------------------
Так, я, кажется, понял, в чём дело... Это действительно связано с интерьерами. Сейчас протестирую и, если всё пройдёт успешно, сообщу, чтоб другие не повторяли моей ошибки.

Добавлено (06.03.16, 12:53)
---------------------------------------------
Так точно. Дело в том, что до этого я помещал игрока в другой интерьер, и после возврата в 0 интерьер (на улицу) сделал select_interior 0, но забыл сослать игрока в него опкодом 0860: link_actor $PLAYER_ACTOR to_interior 0. Поэтому-то была прозрачная мини-карта и возникали аномалии с загрузкой - карта загружалась из 0 интерьера, а игрок был в 3.

Добавлено (06.03.16, 19:20)
---------------------------------------------
А вот теперь возникла другая проблема. Недавно я понял, что время, за которое текст будет рисоваться на экране (033E: set_draw_text_position 500.0 300.0 GXT 'TEST'), зависит от мощностей компьютера: чем быстрее он обработает все опкоды стилизации, рассчитает физику, выведет картинку на экран и т.д., тем меньше времени пробудет на экране текст. Я пробовал в CLEo скрипте с помощью переменной-счётчика 33@ замерить длительность выполнения одного и того же цикла вывода текста - результаты каждый раз были разные. В связи с этим вопрос - как сделать, чтобы текст выводился именно столько, сколько нужно, чтобы не зависел от конфигурации и загруженности компа? Может, есть какой-то аналог счётчиков 32@ и 33@ для миссий?


wmysterio
Администраторы
Скриптер
07.03.16 05:58
Offline
Цитата Slivkin-Sergey ()
А вот теперь возникла другая проблема. Недавно я понял, что время, за которое текст будет рисоваться на экране (033E: set_draw_text_position 500.0 300.0 GXT 'TEST'), зависит от мощностей компьютера: чем быстрее он обработает все опкоды стилизации, рассчитает физику, выведет картинку на экран и т.д., тем меньше времени пробудет на экране текст. Я пробовал в CLEo скрипте с помощью переменной-счётчика 33@ замерить длительность выполнения одного и того же цикла вывода текста - результаты каждый раз были разные. В связи с этим вопрос - как сделать, чтобы текст выводился именно столько, сколько нужно, чтобы не зависел от конфигурации и загруженности компа? Может, есть какой-то аналог счётчиков 32@ и 33@ для миссий?
Ну всегда какой-то расчёт будет зависеть от мощности компа, к примеру даже перемещение камеры может быть быстрее, чем нужно. В случаи с рисованием, то куда проще, так как мы сами регулируем длительность рисования. К примеру, стандартный поток вывода выиграша игрока Рокстаровцы реализовали с помощью текущего времени:
Код
:CASHWIN
03A4: name_thread 'CASHWIN'
01BD: $Current_Time_in_ms2 = current_time_in_ms
00D6: if
0039:   1@ == 0
004D: jump_if_false @CASHWIN_57
008B: 3@ = $Current_Time_in_ms2 // (int)
000A: 3@ += 3000
0002: jump @CASHWIN_73

:CASHWIN_57
008B: 3@ = $Current_Time_in_ms2 // (int)
005A: 3@ += 1@ // (int)

:CASHWIN_73
0001: wait 0 ms
00D6: if
8256:   not player $PLAYER_CHAR defined
004D: jump_if_false @CASHWIN_95
004E: end_thread

:CASHWIN_95
01BD: $Current_Time_in_ms2 = current_time_in_ms
00D6: if
001E:   $Current_Time_in_ms2 > 3@ // (int)
004D: jump_if_false @CASHWIN_121
004E: end_thread

:CASHWIN_121
00D6: if
0039:   0@ == 0
004D: jump_if_false @CASHWIN_234
0050: gosub @CASHWIN_576
0340: set_text_draw_RGBA 180 180 180 255
00D6: if
0039:   2@ == 69
004D: jump_if_false @CASHWIN_206
033E: set_draw_text_position 320.0 180.333 GXT 'BJ_PUSH'  // ­?¤©¬
0002: jump @CASHWIN_227

:CASHWIN_206
033E: set_draw_text_position 320.0 180.333 GXT 'NOWIN'  // ~w~?‘ ?PO…‚PA‡!

:CASHWIN_227
0002: jump @CASHWIN_569

:CASHWIN_234
00D6: if
0019:   0@ > 0
004D: jump_if_false @CASHWIN_422
0050: gosub @CASHWIN_576
0871: init_jump_table 2@ total_jumps 2 default_jump 1 @CASHWIN_384 jumps 45 @CASHWIN_322 80 @CASHWIN_353 -1 @CASHWIN_415 -1 @CASHWIN_415 -1 @CASHWIN_415 -1 @CASHWIN_415 -1 @CASHWIN_415

:CASHWIN_322
045A: draw_text_1number 320.0 155.333 GXT 'ALLRACE' number 0@  // ‹CE ‚O­K… ‹‘…‚PA­‘!~n~~w~$~1~
0002: jump @CASHWIN_415

:CASHWIN_353
045A: draw_text_1number 320.0 155.333 GXT 'PL_07' number 0@  // ?o—e?a!~n~~w~$~1~
0002: jump @CASHWIN_415

:CASHWIN_384
045A: draw_text_1number 320.0 155.333 GXT 'WINNER' number 0@  // ?O?E?A!~n~~w~$~1~
0002: jump @CASHWIN_415

:CASHWIN_415
0002: jump @CASHWIN_569

:CASHWIN_422
008A: $3396 = 0@ // (int)
0010: $3396 *= -1
0050: gosub @CASHWIN_576
0871: init_jump_table 2@ total_jumps 1 default_jump 1 @CASHWIN_538 jumps 80 @CASHWIN_507 -1 @CASHWIN_569 -1 @CASHWIN_569 -1 @CASHWIN_569 -1 @CASHWIN_569 -1 @CASHWIN_569 -1 @CASHWIN_569

:CASHWIN_507
045A: draw_text_1number 320.0 155.333 GXT 'PL_10' number $3396  // ~r~?? ?po?™pa?!~n~~w~-$~1~
0002: jump @CASHWIN_569

:CASHWIN_538
045A: draw_text_1number 320.0 155.333 GXT 'LOSER' number $3396  // ~r~?‘ ?PO…‚PA‡!~n~~w~-$~1~
0002: jump @CASHWIN_569

:CASHWIN_569
0002: jump @CASHWIN_73

:CASHWIN_576
03E4: set_text_draw_align_right 0
0341: set_text_draw_align_justify 0
0343: set_text_draw_linewidth 640.0
0348: enable_text_draw_proportional 1
0345: enable_text_draw_background 0
033F: set_text_draw_letter_size 1.3 3.36
0342: set_text_draw_centered 1
081C: draw_text_outline 2 RGBA 0 0 0 255
0349: set_text_draw_font 3
0904: get_interface 6 color_RGBA_to $Color_Red $Color_Green $Gambles_CashWin $3400
0340: set_text_draw_RGBA $Color_Red $Color_Green $Gambles_CashWin 255
0051: return
Опкод 01BD.

SINGER
Проверенные
11.03.16 22:06
Offline
Здравствуйте!
Есть неплохая идея для миссии перевозок груза. Получится что-то на подобии "Дальнобойщик-2".
Вот смотрите: есть машина, грузовик или мотоцикл, но от них толку практически нет! имеется ввиду в плане доходности. Лишь некоторые автомобили могут зарабатывать деньги.
Я хочу описать вам свою идею в которой можно будет заработать даже на велосипеде! Вот ее суть:
На карте Сан-Андреаса в трех разных городах существует по одной или две станции грузоперевозок. Берем любое авто, даже спецтранспорт или велик и едем туда. Становимся на маркер и получаем груз, а также точку, куда его нужно довезти (лучше всего другой город или подальше в сельскую местность, а еще лучше и то и другое, только рандомно). Вы заработаете больше если у вас грузовик, если легковушка - меньше, если мото или велик - вообще фигню. Но, также рандомно, бывают и не совсем легальные грузы, которые через определенное время преследуются полицией или бандитами (рандомно) или теми и другими. За такие грузы вы получаете двойную прибыль, но они, нелегальные грузы, бывают редко. Таким образом, можно будет зарабатывать на любой тачке в игре!
Это не только интересная идея но и приближение к реализму.
Исключить нужно водный и воздушный транспорт. Можно было бы оставить вертушки, но это не интересно!
Кстати, таймер можно убрать вообще! А если груз срочный, типа почты, то можно поставить. Также рандомно. Хотя лучше чтобы таймера не было!  happy
Если кто возьмется и нужно будет что-то уточнить или дорисовать - обращайтесь.

Slivkin-Sergey
Модераторы
22.03.16 13:36
Offline
SINGER, я сейчас свой проект делаю, но твою идею тоже возьму на заметку. Если закончатся мысли для новых миссий, реализую, пока буду придумывать.

А у меня ещё одна проблема. Почему-то не ставится номер для машины:
Код
0674: set_car_model #PEREN numberplate "XXXXXXXX"
$MS_CAR = Car.Create(#PEREN, 1808.1262, -1432.3154, 13.1323)

Всё равно создаётся какой-то произвольный набор символов.

SINGER
Проверенные
22.03.16 17:32
Offline
Цитата Slivkin-Sergey ()
SINGER, я сейчас свой проект делаю, но твою идею тоже возьму на заметку. Если закончатся мысли для новых миссий, реализую, пока буду придумывать.
О! Отлично! Если доберешься к моей идеи и реализуешь ее - отпиши в личку, если не сложно. Заранее благодарю!

wmysterio
Администраторы
Скриптер
22.03.16 18:49
Offline
Цитата Slivkin-Sergey ()
Почему-то не ставится номер для машины
Попробуй использовать 7 символов в место 8.

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

Slivkin-Sergey
Модераторы
23.03.16 13:49
Offline
wmysterio, спасибо, попробую. Ещё такой вопрос: можно ли как-нибудь "заморозить" анимацию актёра, т.е. чтоб он выполнял её до опред. момента и потом замер в этом положении?

Добавлено (23.03.16, 12:49)
---------------------------------------------
Неа, всё равно номера не ставятся...


wmysterio
Администраторы
Скриптер
23.03.16 16:39
Offline
Цитата Slivkin-Sergey ()
Неа, всё равно номера не ставятся
А какая собственно машина?
Вот мой код:
Код
{$CLEO}
0000:
Model.Load(#ADMIRAL)
038B: load_requested_models
0674: set_car_model #ADMIRAL numberplate "MYSTERIO"
0@ = Car.Create(#ADMIRAL, 2490.4504, -1674.2688, 13.3359)
Car.Angle(0@) = 88.4117          
0A93: end_custom_thread
Результат:

Номера успешно установлены, при чём с 8-ми символами. Но есть одно НО! Номера установлены только позади транспорта, а впереди - произвольный набор букв и цифр.
Другой скрипт(добавим ещё одну машину):
Код
{$CLEO}
0000:
Model.Load(#ADMIRAL)  
Model.Load(#PICADOR)
038B: load_requested_models
0674: set_car_model #ADMIRAL numberplate "MYSTERIO"
0@ = Car.Create(#ADMIRAL, 2490.4504, -1674.2688, 13.3359)
Car.Angle(0@) = 88.4117      
0674: set_car_model #PICADOR numberplate "MYSTERIO"
1@ = Car.Create(#PICADOR, 2489.2458, -1679.592, 13.0551)
Car.Angle(1@) = 88.404
Model.Destroy(#ADMIRAL)  
Model.Destroy(#PICADOR)         
0A93: end_custom_thread
Смотрим на неё:

Видно, что номера спереди, а позади - произвольный набор букв о_0

Вывод: Для каждой тачки номера ставятся индивидуально. Например в #HOTRING номера вообще не появляются
Прикрепления: 1919916.png(258Kb) · 2345223.png(259Kb)

Slivkin-Sergey
Модераторы
23.03.16 17:05
Offline
wmysterio, у меня #PEREN.

Добавлено (23.03.16, 16:05)
---------------------------------------------
И на нём и спереди и сзади один и тот же произвольный набор символов.


wmysterio
Администраторы
Скриптер
23.03.16 17:16
Offline
Цитата Slivkin-Sergey ()
И на нём и спереди и сзади один и тот же произвольный набор символов.
Тестировал у себя - тоже самое - новые номера не цепляются sad

Slivkin-Sergey
Модераторы
04.04.16 17:52
Offline
Спасибо за тесты, теперь хоть буду знать, что это не очередной бзик моей ГТАшки. Эх, а сколько можно было бы "пасхальных" номеров сделать - у меня ж эта машина чуть ли не в каждой миссии.

Добавлено (04.04.16, 16:52)
---------------------------------------------
Есть ли возможность в scr.scm добавить свои внешние скрипты, чтоб работали? Кроме парашюта. И ещё, надо воспроизвести несколько аудистримов одновременно, можно ли так сделать?

Отредактировал Slivkin-Sergey - Воскресенье, 03.04.16, 16:22

wmysterio
Администраторы
Скриптер
06.04.16 05:41
Offline
Цитата Slivkin-Sergey ()
Есть ли возможность в scr.scm добавить свои внешние скрипты, чтоб работали?
Делаешь мод как обычный мейн, а затем переносишь оба файла в mission pack. Работать будут только если начать игру с этого mission pack'а.
Цитата Slivkin-Sergey ()
И ещё, надо воспроизвести несколько аудистримов одновременно, можно ли так сделать?
Ну у меня спокойно получалось воспроизводить несколько аудио в "Карьерист"е.

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