Показать сообщение отдельно
Старый 07.02.2021, 21:15   #52
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,320
По умолчанию

Цитата:
Сообщение от YurBorR Посмотреть сообщение
Вась, поменяй в классе местами строки и будет отключаться огонь, как и надо - движок то выключен.
Завтра попробую вообще метод переписать - добавить касе на каждый еффект.
Последний сасе завершающий - на него не вешается еффект,
иначе не закомпилится.
Код игра принимает - дёрганий миссии не заметил.
Была попытка - но нужно проверять и шлифовать.
Код:
private void advanceState(int i, int j)
    {
        for(sta = i; sta < j;)
        {
            sta++;
            if(ramp.prop.air)
                switch(sta)
                {
                case 0: // '\0'
                    collide(true);
                    drawing(true);
                    eng_trail = Eff3DActor.New(this, findHook("_Engine1EF_01"), null, 1.0F, "3DO/Effects/Tracers/ImpulseRocket/ImpulseRocketSmoke.eff", -1F);
                    newSound(ramp.prop.soundName, true);
                    break;

                case 1: // '\001'
                    Eff3DActor.finish(eng_trail);
                    eng_trail = null;
                    breakSounds();
                    break;

                case 2: // '\002'
                    collide(true);
                    drawing(true);
                    eng_trail = Eff3DActor.New(this, findHook("_Engine1EF_01"), null, 1.0F, "3DO/Effects/Tracers/ImpulseRocket/EngineRocketFlame.eff", -1F);
                    newSound(ramp.prop.soundName, true);
                    break;

                case 4: // '\004'
                    Eff3DActor.finish(eng_trail);
                    eng_trail = null;
                    breakSounds();
                    break;
                }
            else
                switch(sta)
                {
                case 1: // '\001'
                case 2: // '\002'
                case 7: // '\007'
//                case 4: // '\004'
//                case 5: // '\005'
//                case 6: // '\006'
                default:
                    break;

                case 0: // '\0'
                    eng_trail = Eff3DActor.New(this, findHook("_Engine1EF_01"), null, 1.0F, "3DO/Effects/Tracers/ImpulseRocket/ImpulseRocketSmoke", -1F);
                    newSound(ramp.prop.soundName, true);
                    if(wagon != null)
                    {
                        wagon.forgetRocket();
                        wagon = null;
                    }
                    break;

                case 3: // '\003'
                    Eff3DActor.finish(eng_trail);
                    eng_trail = null;
                    breakSounds();
                    break;

                case 5: // '\005'
                    eng_trail = Eff3DActor.New(this, findHook("_Engine1EF_01"), null, 1.0F, "3DO/Effects/Tracers/ImpulseRocket/EngineRocketFlame", -1F);
                    newSound(ramp.prop.soundName, true);
                    if(wagon != null)
                    {
                        wagon.forgetRocket();
                        wagon = null;
                    }
                    break;

                case 6: // '\006'
                    Eff3DActor.finish(eng_trail);
                    eng_trail = null;
                    breakSounds();
                    break;
                }
        }

        sta = j;
    }
Уже к вечеру голова ... того... нужно отдых.
Там точку ефф забыл - поменяй названия еффектов.
Код тестил вчера, потом вернулся к простому варианту.
Vasya вне форума   Ответить с цитированием