|
|
PRO Mods |
|
Ваш ID: Guest
Скрипты для гаража
| |
modnkind | Дата: Четверг, 2014-06-26, 20:10:03 | Номер сообщения: 1 |
Группа: Удаленные
| Народ всем доброго времени суток! Помогите пожалуйста доделать скрипты работы подъемника и кнопок. Не знаю правильно ли я описываю то что делал). Подъемник стандартный из MWM прописал его к джековой сборке, но писал только в яве гаража. рпк не трогал, т.к. будет вылетать. Поэтому при нажатии на кнопку машина не поднимается. В яве вроде прописано что машину должен поднимать физмеш, но рпк не прописан поэтому не поднимается. (не сильно в этом разбираюсь, поэтому не могу сказать точно). Тем не менее если зайти в каталог а потом выйти обратно в гараж машина оказывается на должном уровне над землей. Опускается при нажатии на кнопку нормально. Поэтому как я понял есть два пути решения: 1 прописать в яве скрипт для планого подъема (долго и нудно+я не разбираюсь) 2 прописать небольшой скрипт при помощи которого можно было зайти в магазин и обратно, или просто перезагрузить гараж. С момими умениями я смог только назначить на кнопку вход в каталог, а вот обратно не получилось. Прикрепляю кусок кода, красным веделил строку которую надо заменить/дописать. Код if( cmd == CMD_JACK ) { JackDamage = 0;
if ( JackStatus == 0 ) { if ( player.car ) { CarVector = player.car.getPos();
if (CarVector.x < JackPos.x+0.5 && CarVector.x > JackPos.x-0.5 && CarVector.z < JackPos.z+0.5 && CarVector.z > JackPos.z-0.6) { SFX_Loop_ID = Jack_Move_SFX.play( JackPos, 0.0, 1.0, 1.0, 0 ); // SFX Move
player.car.wakeUp();
JackArm.setMatrix(new Vector3(JackPos), null ); JackPhys.setMatrix(new Vector3(0.0, -3, 0.0), null ); // Place static phys under track
JackVeh = new Vehicle( map, frontend:0x0144r, 6, 2.0, 0.0, 1.0, 1.0 ); JackVeh.setMatrix(new Vector3(JackPos), null ); // up pos
JackVeh.setMatrix(new Vector3(JackPos.x, JackPos.y + 17.5, JackPos.z), null ); // up pos JackVeh.command( "stop" ); JackVeh.setMatrix(new Vector3(JackPos), null ); // down pos JackVeh.wakeUp();
JackButton.changeTexture( new ResourceRef( frontend:0x0A7Fr ) ); // Jack Bussy JackButton.disable();
JackStatus = 1;
JackThread = new Thread( this, "Jack Animate Refresher" ); JackThread.start(); [color=#ff0000]GameLogic.changeActiveSection(GameLogic.garage); } else new WarningDialog( player.controller, Dialog.DF_MODAL|Dialog.DF_DEFAULTBG, "INFO", "Your car isn't parked center over the jack's arm" ).display(); } else new WarningDialog( player.controller, Dialog.DF_MODAL|Dialog.DF_DEFAULTBG, "INFO", "You need a car to do this! \n Buy a car or get one from the car lot." ).display(); } if ( JackStatus == 3 ) { JackButton.changeTexture( new ResourceRef( frontend:0x0A7Fr ) ); // Jack Bussy JackButton.disable();
new SfxRef(frontend:0x0141r).play(JackPos, 0.0, 1.0, 1.0, 0); // SFX Move Down
JackStatus = 4; Vector3 CarDownVector = new Vector3 (CarVector); // get car position for Up position CarDownVector.y = CarMass*0.0017-0.2; player.car.setMatrix( new Vector3 (JackPos.x, CarDownVector.y, JackPos.z), new Ypr(CarYpr) ); // Set car Down position player.car.command( "stop" ); player.car.setMatrix( new Vector3 (CarVector), new Ypr(CarYpr) ); // Set car Up position player.car.wakeUp(); player.car.command( "setsteer -0.7" ); player.car.command( "brake" ); JackWait = System.simTime() + 2; } } else Второй скрипт должен был вытащить кнопки покупки шасси, подвески и двигателя в меню гаража. Кнопки я сделал а вот закрепить за ними функциями не смог. Прикрепляю код) Заранее извиняюсь если где то что то не правильно. Код if( cmd == CMD_ENGINE ) { SavePos = 1; // Save car position [color=#ff0000]GameLogic.changeActiveSection( new ссылка на двигатель); } else
|
|
|
|
RAXAT | Дата: Пятница, 2014-06-27, 17:50:04 | Номер сообщения: 2 |
Legend
Группа: Master
Сообщений: 5209
Награды: 82
Положение: Offline
| Не совсем понял, а что именно не получилось реализовать?
Владелец сайта PROMODS.RU Администратор сайта streetlegalmods.com (GOM-TEAM) Разработчик Street Legal Racing: Redline v2.3.1 Skype: skype_raxat PayPal: eversoft@bk.ru E-mail: ceo@image-code.com
|
|
|
|
modnkind | Дата: Пятница, 2014-06-27, 22:03:44 | Номер сообщения: 3 |
Группа: Удаленные
| RAXAT, Вобщем я хочу чтобы в гараже на экране было три-четыре кнопки при нажатии на которые я соответственно попадал в меню покупки шасси, моторов и подвески и т.д. И чтобы при нажатии на кнопку подъемника включалось фоновое изображение и происходило перезахождение в гараж, чтобы поднять машину, так как дописать скрипт на такой же плавный подъем я не сумею. Вот видео чтобы стало понятнее
Post edited by modnkind - Суббота, 2014-06-28, 19:12:05 |
|
|
|
RAXAT | Дата: Среда, 2014-07-02, 20:53:45 | Номер сообщения: 4 |
Legend
Группа: Master
Сообщений: 5209
Награды: 82
Положение: Offline
| YouTube у меня пока забанен, видео глянуть не могу. По поводу поднятия машины, есть ли смысл выходить из гаража? Можно поверх всего экрана повесить загрузочный экран (что-то типа new LoadingDialog().show()), в это время поднять машину, применив к кузову метод setPos(), затем снять экран обратно (через метод hide()). С плавным подъёмом довольно много заморочек, лучше начать с простого варианта.
Насчёт перехода в магазин, если я правильно понял, по нажатию на кнопку должен открываться нужный раздел каталога. В этом направлении есть сейчас какие-либо сложности? Конкретные примеры кода привести сейчас нет возможности - исходники на новом ссд не распаковал ещё
Владелец сайта PROMODS.RU Администратор сайта streetlegalmods.com (GOM-TEAM) Разработчик Street Legal Racing: Redline v2.3.1 Skype: skype_raxat PayPal: eversoft@bk.ru E-mail: ceo@image-code.com
|
|
|
|
modnkind | Дата: Четверг, 2014-07-03, 02:00:19 | Номер сообщения: 5 |
Группа: Удаленные
| RAXAT, Попробовал сейчас вариант с таким кодом Код Frontend.loadingScreen.show(); Vector3 upping = new Vector3(JackPos.x, JackPos.y + 1.5, JackPos.z); player.car.setPos( upping ); Frontend.loadingScreen.hide(); Машина поднялась, но кнопка не переключилась, когда на нее мышкой наводишь показывает что нельзя нажать т.е назад опуститься она не смогла. Переключилась только после того как зашел в каталог и вышел (тобишь гараж перезагрузился). Пробовал добавить такие строки чтобы сделать переход туда-обратно, Код SavePos = 1; // Save car position GameLogic.changeActiveSection( new Catalog() ); SavePos = 1; // Save car position GameLogic.changeActiveSection( new Garage() ); но не получилось, загружаются иконки гаража поверх загрузочного экрана. По поводу перехода в магазин, то ты все правильно понял, а то я никак не мог правильно объяснить, что пытаюсь сделать На данный момент удалось лишь сделать чтобы при нажатии заходил в каталог. Ковырял разными способами никак не получается. Пробовал примерно так: GameLogic.changeActiveSection( Catalog.CMD_MAIN1 ); //CMD_MAIN1 - раздел двигатели GameLogic.changeActiveSection( new Catalog ( GameLogic.changeActiveSection ( Catalog.CMD_MAIN1 ) ) ); GameLogic.changeActiveSection( new Catalog ( CMD_MAIN1 ) ); Не знаю даже в правильную ли сторону я ковыряю) Очень прошу помочь с кодом. Возник еще один вопрос: можно ли на экран загрузки поставить какой нибудь крутящийся значок? Чтоб не так скучно было загрузку ждать. Добавить мешь на нее текстуру и заставить крутиться. Сам пока не пробовал, просто интересуюсь.
Post edited by modnkind - Четверг, 2014-07-03, 03:53:08 |
|
|
|
RAXAT | Дата: Четверг, 2014-07-03, 21:06:13 | Номер сообщения: 6 |
Legend
Группа: Master
Сообщений: 5209
Награды: 82
Положение: Offline
| По каталогу, попробуй добавить в сам каталог (Catalog.java) конструктор типа public Catalog(int section), а затем в теле этого конструктора напиши что-то вроде:
Код super(); if(section == 1) osdCommand(CMD_MAIN1); т.е. идентификатор нужной секции приходит в конструктор каталога через вызов из внешнего класса, далее конструктор должен создать сам каталог и открыть требуемый раздел через osdCommand, имитируя действия пользователя. P.S.: если игра будет жаловаться на синтаксическую ошибку в методе super(), попробуй создать каталог в этом месте другим способом.
А как кнопка подъёмника перешла в неактивное состояние? о_О обычно это намеренно делается программистом.
По поводу крутящейся иконки при загрузке - можно в LoadingScreen или LoadingDialog добавить объект Rectangle и крутить его до тех пор, пока не будет вызван метод hide(), но есть подозрения, что он просто замрёт на месте до момента окончания загрузки ресурсов.
Владелец сайта PROMODS.RU Администратор сайта streetlegalmods.com (GOM-TEAM) Разработчик Street Legal Racing: Redline v2.3.1 Skype: skype_raxat PayPal: eversoft@bk.ru E-mail: ceo@image-code.com
|
|
|
|
modnkind | Дата: Вторник, 2014-08-05, 21:01:00 | Номер сообщения: 7 |
n00bie
Группа: Site Member
Сообщений: 14
Награды: 0
Положение: Offline
| Спасибо
Прикреплено\Attachment:
2926904.jpg
(20.6 Kb)
Slrr upload to head 25%
Post edited by RAXAT - Вторник, 2014-08-05, 21:25:55 |
|
|
|
|
| |
Copyright PRO Mods 2005© All rights reserved | |