PRO Mods - Forums
PRO Mods
Ваш ID: Guest
Recent messages\ Последние сообщения форума · Users list\ Список пользователей · Site search\ Поиск
  • Страница 1 из 1
  • 1
Форум » Main partition\ Главный раздел » Tutorials\ Туторы » Скрипты для гаража (Прошу помочь. Скрипты простые)
Скрипты для гаража
modnkindДата: Четверг, 2014-06-26, 20:10:03 | Номер сообщения: 1
Группа: Удаленные









Народ всем доброго времени суток! smile
Помогите пожалуйста доделать скрипты работы подъемника и кнопок.
Не знаю правильно ли я описываю то что делал).
Подъемник стандартный из 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()). С плавным подъёмом довольно много заморочек, лучше начать с простого варианта.

Насчёт перехода в магазин, если я правильно понял, по нажатию на кнопку должен открываться нужный раздел каталога. В этом направлении есть сейчас какие-либо сложности? Конкретные примеры кода привести сейчас нет возможности - исходники на новом ссд не распаковал ещё smile


Владелец сайта 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();
Машина поднялась, но кнопка не переключилась, когда на нее мышкой наводишь показывает что нельзя нажать wink  т.е назад опуститься она не смогла. Переключилась только после того как зашел в каталог и вышел (тобишь гараж перезагрузился). Пробовал добавить такие строки чтобы сделать переход туда-обратно,
Код
SavePos = 1; // Save car position
    GameLogic.changeActiveSection( new Catalog() );
    SavePos = 1; // Save car position
    GameLogic.changeActiveSection( new Garage() );

но не получилось, загружаются иконки гаража поверх загрузочного экрана.
По поводу перехода в магазин, то ты все правильно понял, а то я никак не мог правильно объяснить, что пытаюсь сделать smile На данный момент удалось лишь сделать чтобы при нажатии заходил в каталог. Ковырял разными способами никак не получается. Пробовал примерно так:
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
 
Форум » Main partition\ Главный раздел » Tutorials\ Туторы » Скрипты для гаража (Прошу помочь. Скрипты простые)
  • Страница 1 из 1
  • 1
Поиск:
Copyright PRO Mods 2005© All rights reserved