You are not logged in.
Еще вопрос! Уважаемые знатоки, 1. Как создать рэндомно машину в определенных координатах? 2. как присвоить её на переменную и 3. Как сделать чтоб у этой машины были поломанные части кузова? Заранее благодарен
Last edited by MB116 (08-01-2011 16:51)
Offline
1) Можно создать случайную машину несколькими способами.
03C5: create_random_car_for_carpark 2077.872 2398.657 9.8203 z_angle 89.6383 Так создается случайная машина в опр. координатах и углом, но ей не присваивается переменная.
Второй способ:
Задать случайное число между моделями машин (я знаю только, что между 400 и 610 все работает) и создать машину таким опкодом
Car.create(переменная,модель,X,Y,Z)
2) Поломанные части у авто:
Повредить часть авто 0730: car 280@ damage_component 1 // versionA Отломать часть авто 0689: set_car 95@ remove_componentA 1 visible_effect_flag 0 Починить часть авто 068A: set_car $RYDER_CAR repair_componentA 2 Части авто (из справки СБ) 0 Капот. 1 Багажник. 2 Дверь водителя или левого переднего места. 3 Дверь правого переднего места. 4 Дверь заднего левого места. 5 Дверь заднего правого места.
Offline
1)
0@ = Car.Create(1@, 2@, 3@, 4@)
0@ - там живёт твоя машина, 1@ - её модель, если сгенерировать случайное число, то на месте машины может оказаться и танк и поезд...
2@, 3@, 4@ - координаты, их можно задать точно или с помощью random float.
Offline
Огромное спасибо друзья за ответы, ваш форум и что, есть еще такие хорошие люди как Вы, которые мне очень помогли!!! И если вас не затруднит по подробнее расписать про координаты с помощью random float. Я просто новичек в скриптинге и многому учусь с вашего форума, был бы очень признателен если бы Вы расписали про random float.
Offline
0208: 1@ = random_float_in_ranges -10.0 10.0 0208: 2@ = random_float_in_ranges -10.0 10.0 0@ = Car.Create(#TURISMO, 1@, 2@, 14.0)
Первые 2 команды создают случайные X и Y координаты от -10.0 до 10.0. Третья создаёт авто с моделью TURISMO по этим координатам, координата высоты взята примерно и с большим запасом. Чтобы всегда и везде видеть тачку напиши ещё 1@ = Marker.CreateAboveCar(0@) - создаст маркер над тачкой.
Offline
С # - это если имя модели. А у неё есть и номер.
Номер модели авто - integer от 400 до 611. Подойдёт другой опкод
0209: 2@ = random_int_in_ranges 400 to 612
А теперь вернёмся к твоему коду. Ты создал тачку, а потом вычислил номер модели. Где логика? Меняй команды местами.
Offline
Вот я дурик)))
Никто и не сомневался Не, просто не внимательный.=)
Offline
Скорее всего из-за того, что создаётся какой-нибудь вагон или платформа. Хотя лучше приведи весь код.
Last edited by ~AquaZ~ (08-01-2011 19:58)
Offline
Ну я в общем делаю миссию! Я только учусь, справкой SB, SB мануалом от Alexander, Вашим форумом и методом тыка) Так что сильно не пинать)))
{$VERSION v4.1.1.30} {$CLEO .cm} thread "DASWORK" :DASWORK gosub @DASWORKStart if wasted_or_busted then gosub @DASWORKFailed end gosub @DASWORKCleanup end_thread :DASWORKStart wait 0 fade 0 250 Model.Load(#CELLPHONE) Model.Load(#WMYMECH) 038B: load_requested_models :DASWORK_1 wait 0 if Model.Available(#CELLPHONE) Model.Available(#WMYMECH) jf @DASWORK_1 fade 1 500 wait 3000 0729: AS_actor $PLAYER_ACTOR hold_cellphone 1 wait 2000 0ACA: show_text_box "Hello, my fucked car be crashed!" wait 3000 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 jump @DASWORK_4 :DASWORK_2 wait 100 0376: 0@ = create_random_actor_at -2026.5664 183.8417 29.1107 jump @DASWORK_4 :DASWORK_4 wait 0 0209: 2@ = random_int_in_ranges 400 to 611 1@ = Car.Create(2@, -2026.504, 177.0419, 28.8359) jump @DASWORK_5 :DASWORK_3 wait 0 if Actor.DrivingVehicleType($PLAYER_ACTOR, #DFT30) jf @DASWORK_3 gosub @DASWORKPassed return :DASWORK_5 wait 0 if Actor.Dead(0@) jf @DASWORK_5 jump @DASWORKFailed :DASWORKPassed wait 500 model.destroy(#CELLPHONE) Model.Destroy(#WMYMECH) 01E3: text_1number_styled 'M_PASSD' 0 5000 ms 1 // WORK PASSED! Player.Money($PLAYER_CHAR) += 15000 return :DASWORKFailed wait 500 00BA: text_styled 'M_FAIL' 5000 ms 1 // ~r~WORK FAILED! return :DASWORKCleanup $MISSION = 0 // integer values mission_cleanup return
Offline
if Model.Available(#CELLPHONE) Model.Available(#WMYMECH)
Для таких случаев есть if and.
Вообще очень странный код с перепрыгиванием меток
прыг метка3 :метка2 ... :метка3
Offline
if or Actor.DrivingVehicleType($PLAYER_ACTOR, #DFT30) Actor.DrivingVehicleType($PLAYER_ACTOR, #PREVED) Actor.DrivingVehicleType($PLAYER_ACTOR, #MEDVED) jf @DASWORK_3
Offline
Пользуйся поиском опкодов по запросу store coords from actor. Всё, пошёл спать.
Offline
@MB116
"Полученную" модель надо ещё и загрузить.
repeat 0209: 0@ = random_int_in_ranges 400 612 until 0A01: model 0@ car if not model.Available(0@) then model.Load(0@) while not model.Available(0@) wait 0 end end car.Create(1@, 0@, -2026.504, 177.0419, 28.8359)
Last edited by DK22Pac (08-01-2011 21:55)
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
Пожалуйста
Покажешь хоть скриншоты миссии!?
Offline