Суббота, 04 Мая 2024, 1:56:50 PM приветствую! Гость

Меню сайта
Статистика

кто тута: 1
Гостей: 1
местных: 0
Форма входа
Решил выкладывать сюда свои скрипты которые смастерил , в результате тестов и проб , а также глюки способы реализаций прихотливых функций Морровинда.


1) "Прихоти" функций и команд
 один из самых первых глюков , которые мне попались , был глюк с функцией StreamMusic  , когда она вызывалась на актерах , то при  создании условия 

if ( MenuMode == 1 )
Return
endif 
 т.е. в режима меню (инвентарь и т.п. ) она должна выключатся , но здесь она действовала наоборот .Когда я разочарованный в скрипте полез в меню выключать игру , то услышал музыку.

второе - проверка на сэйдан ( SayDone ) , это функция возвращает ( устанавливает ) истину ( единицу ) если актер ничего не говорит. Мне приходилось изголятся и добавлять дополнительные переменные в скрипте для контроля потому что он не хотел работать .Например когда я делал несколько песен подряд , то она застревала на одной ,или на тестовой , меньше 5 секунд таймера ожидания.

Пример :
begin _Test_sound
float timer ; локальные переменные (только для данного объекта ) .Если указать глобальную переменную  здесь , то появится одноименная локальная , и она будет исполнятся
short var
short var2

  if ( MenuMode==1 )
  return
  endif
  
    if ( OnActivate == 1 ) ; проверка на активацию , т.е. когда наведешь и нажмешь "Е" или пробел. Ну или какая кнопка назначена на использование.
    return
    endif

;блок 1
if ( var2 == 0 ) ; условие проверяет вар 2 , если равно нулю , то продолжает выполнять данный блок
    if ( GetDistance player < 5200 ) ;Здесь он проверяет на расстояние до игрока
      if ( saydone == 1 ) ; Сэйдан , для проверки 
        if ( timer == 0 ); ну понятно , таймер
         set var to 1; устанавливает контрольные переменные , вар контролирует последовательность хода выполнения, вар2 контролирует начало и конец скрипта
   set var2 to 1
         say "Vo\q\bagney3.mp3" "vvv"
        endif            
      endif
    endif
endif
;конец 1 блока

;комментарии , оставленные после знака ";" (точка с запятой) считываться и проверятся  ни игрой , ни компилятором ,  не будут
      if ( var == 1 )
      set timer to timer + getsecondspassed ; функция  GetSecondsPassed означает  что в переменную типа float значение секунд за каждый фрейм , а фреймов может быть 240 по умолчанию , но значение не                                         ;складывается , а переписывается .
      endif

        if ( timer >= 5 )  ; здесь я поставил таймер для паузы между песнями , ну здесь , ясен пень , он длится 5 секунд
    if ( var == 1 )  
        set var to 2        
        endif
  endif

      if ( var == 2 )
         if ( saydone == 1 )  ; проверка на сэйдан и контрольную пременную , если успешна , то произносит речь.
            set timer to 0 
 set var to 3  
            say "Vo\q\bagney1.mp3" "v3vv" ; команда сэй означает  произнести актером, точнее сказать , в буквальном смысле.
         endif                  
      endif
      
      
        if ( var == 3 )
        set timer to timer + getsecondspassed
  endif
      
      
        if ( timer >= 5 )
  if ( var == 3 )
        set var to 4
        endif
        endif
     
        if ( var == 4 )        
           if ( saydone == 1 )
           set timer to 0
set var to 5
say "Vo\q\bagney2.mp3" "fdf"  ;в первых кавычках указан путь  , папка Vo\ означает что здесь хранятся голоса , файлы должны  быть в формате mp3 , моно ,44 кГц частота дискредитации . 
           endif
        endif

        if ( var == 5 )
        set timer to timer + getsecondspassed
  endif

        if ( timer >= 5 )
  if ( var == 5 )
        set var to 6
        endif
        endif

         if ( var == 6 )        
            if ( saydone == 1 )
             set timer to 0
  set var2 to 0
  say "Vo\q\DrunkGuyRambling.mp3" "fdgyhgf" во вторых кавычках указан текст речи , типа "Мы следим за тобой , ничтожество" 
           endif
        endif

    
end


Поиск
Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Архив записей
Друзья сайта
Copyright DAn#1 © 2024 Бесплатный хостинг uCoz