• Добро пожаловать, Гость. Войдите или зарегистрируйтесь.

Автор Тема: Разные вопросы и их решения по разным скриптам для разного...  (Прочитано 1354 раз)

Описание:

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Galib

  • WhiteUglyGuar
  • *
  • Сообщений: 1262
  • Репутация: 15.3
  • Пол: Мужской
  • WhiteUglyGuar
    • Просмотр профиля
    • Galib Morrowind
    • Email
 :meeting: Скриптового настроения  :yes: ...мм.. это такое, как программа, которая написана так а не иначе и реагирует только так и никак иначе на определённые действия, а ежели действия не предусмотрены изначально то программа их игнорирует, если она не особенная, которая методом аналитически-эмпирическим производит анализ и классификацию не обозначенного ранее действия, что приводит к его таки обозначению и соответственно к какой-то реакции программы... :duma: но настроение - не программа и бывают непредвиденные скриптописью лирические отступления  :D
   Я таки решил, что хоть в Морр почти не играет никто, но может кто и ответит, потому что бывает так, когда иль незнание чего-то есть или отсутсвие... да просто иногда замыливется взляд и движение мыслей совсем не в том направлении, какое требуется при написании скриптов и я не вижу того, что есть...
Вот, для начала пример скрипта с вопросом.
Begin _GL_Caravan_Toy1

short done
short playlist
Short FrameCount

; Это кусочек для уменьшения колличества проходов скрипта в единицу времени
if ( MenuMode == 1 )
   Set FrameCount to 25
   Return
endif

if ( FrameCount < 25 )
   Set FrameCount to ( FrameCount + 1 )
   Return
endif
set FrameCount to 0

; Этот кусочек регулирует появление скриптоносителя - куклы от появления записи в журнале
if ( done == 0 )
   if ( GetJournalIndex "_GL_Caravan_Toys1" <= 10 )
      if ( CellChanged == 1 )
         Disable
      endif
   else
      if ( CellChanged == 1 )
         Enable
            set done to 1
         return
      endif
   endif
endif

;reset playlist - это перезарядка плейлиста
if ( CellChanged == 1 )
   set playlist to 0
endif

; Bards only play at night: - это установка времени когда бард-какла пояляется и "играет"
if ( done == 1 )
if ( GameHour >= 3 )
   if ( GameHour < 18 )
      if ( CellChanged == 1 )
         Disable
         Return
      endif
   endif
elseif ( GameHour < 3 )
   if ( GameHour >= 18 )
      if ( CellChanged == 1 )
         enable
      endif
   endif
endif
endif

; Avoid clash with game music: - это "забивание" пустотой, т.е. тишина вместо обычной музыки игры
if ( done == 1 )
if ( GameHour < 3 )
   if ( GameHour >= 18 )
      StreamMusic, "silent.mp3"
; Jukebox toplay music in sequence - это устанговление порядка проигрывания музыки
      if ( playlist == 0 )
         if ( GetSoundPlaying "_GL_guitar_7" == 1 )
            return
         else
            PlaySound3DVP "_GL_guitar_2", 1.0, 1.0
            set playlist to 1
         endif
      elseif ( playlist == 1 )
         if ( GetSoundPlaying "_GL_guitar_2" == 1 )
            Return
         else
            PlaySound3DVP "_GL_guitar_3", 1.0, 1.0
         set playlist to 2
         endif
      elseif ( playlist == 2 )
         if ( GetSoundPlaying "_GL_guitar_3" == 1 )
            Return
         else
            PlaySound3DVP "_GL_guitar_4", 1.0, 1.0
         set playlist to 3
         endif
      elseif ( playlist == 3 )
         if ( GetSoundPlaying "_GL_guitar_4" == 1 )
            Return
         else
            PlaySound3DVP "_GL_guitar_5", 1.0, 1.0
         set playlist to 4
         endif
      elseif ( playlist == 4 )
         if ( GetSoundPlaying "_GL_guitar_5" == 1 )
            Return
         else
            PlaySound3DVP "_GL_guitar_6", 1.0, 1.0
         set playlist to 5
         endif
      elseif ( playlist == 5 )
         if ( GetSoundPlaying "_GL_guitar_6" == 1 )
            Return
         else
            PlaySound3DVP "_GL_guitar_7", 1.0, 1.0
         set playlist to 0
         endif
      endif
   endif
endif
endif

End _GL_Caravan_Toy1

Вопрос в том, что скрипт на работает.  т.е. когда он был написан просто для чередования звучащей музыки ияходящей якобы от NPC с балалайкой в руках - он работал, а потом я переделал npc в куклу которую нужно продать, всучить, впарить, втюхать и т.д. тавернёру, что обозначается в журнале, то получается, что кукла стоит на месте уже до наступления факта продажи и записи в журнале.. и музыки никакой нема..
 :hi
De gustibus et coloribus non disputandum est
Награды За создание новогоднего настроения Всем принявшим участие в 9-летии Тиарума Всем форумчанам, принимавшим участие в праздновании 10-летия Морровинд Награждаются форумчане, заставшие зарождение Румора

Оффлайн ZWolol

  • *
  • Сообщений: 10
  • Репутация: 0
  • Пол: Мужской
    • ICQ клиент - 292954491
    • Просмотр профиля
Отвечу здесь...
Мне лениво проверять, но попробуй этот:

Begin _GL_Caravan_Toy1

short playlist

; Это для уменьшения тормозов в режиме меню
if ( MenuMode == 1 )
   Return
; Этот кусочек регулирует появление скриптоносителя - куклы от появления записи в журнале
elseif ( GetJournalIndex "_GL_Caravan_Toys1" <= 10 )
   Disable
   return
endif

; Bards only play at night: - это установка времени когда бард-кукла пояляется и "играет"
if ( GameHour >= 3 )
   if ( GameHour < 18 )
      Disable
      Return
   endif
endif

enable

; Jukebox toplay music in sequence - это установление порядка проигрывания музыки
if ( playlist == 0 )
   if ( GetSoundPlaying "_GL_guitar_7" != 1 )
      PlaySound3DVP "_GL_guitar_2", 1.0, 1.0
      set playlist to 1
   endif
elseif ( playlist == 1 )
   if ( GetSoundPlaying "_GL_guitar_2" != 1 )
      PlaySound3DVP "_GL_guitar_3", 1.0, 1.0
      set playlist to 2
   endif
elseif ( playlist == 2 )
   if ( GetSoundPlaying "_GL_guitar_3" != 1 )
      PlaySound3DVP "_GL_guitar_4", 1.0, 1.0
      set playlist to 3
   endif
elseif ( playlist == 3 )
   if ( GetSoundPlaying "_GL_guitar_4" != 1 )
      PlaySound3DVP "_GL_guitar_5", 1.0, 1.0
      set playlist to 4
   endif
elseif ( playlist == 4 )
   if ( GetSoundPlaying "_GL_guitar_5" != 1 )
      PlaySound3DVP "_GL_guitar_6", 1.0, 1.0
      set playlist to 5
   endif
elseif ( playlist == 5 )
   if ( GetSoundPlaying "_GL_guitar_6" != 1 )
      PlaySound3DVP "_GL_guitar_7", 1.0, 1.0
      set playlist to 0
   endif
endif

End _GL_Caravan_Toy1

P.S.
if ( CellChanged == 1 ) - в локальных скриптах срабатывает только при следующем возвращении

StreamMusic - устанавливает громкость 100 (не желательно использовать)

Оффлайн Galib

  • WhiteUglyGuar
  • *
  • Сообщений: 1262
  • Репутация: 15.3
  • Пол: Мужской
  • WhiteUglyGuar
    • Просмотр профиля
    • Galib Morrowind
    • Email
 :meeting: Самостирающегося нас троения  ;) ... этто которое само себя стирает, потому что завтра есть всегда никогда никуда не наступает, а сегодня никогда не становится вчера потому что это только завтрашнее вчера ;-)
А ещё тётя Клава бывает стёртая, потёртая (много работает и мало спит :-)))) на столько, что половина буковок уже не читается на ней.
ZWolol, Спасибо за ответ:
Но я просто поспал и проснувшись сел и переделал вот так:

Begin _GL_Caravan_Toy1

short done
short playlist
Short FrameCount

if ( MenuMode == 1 )
   Set FrameCount to 25
   Return
endif

if ( FrameCount < 25 )
   Set FrameCount to ( FrameCount + 1 )
   Return
endif
set FrameCount to 0

if ( done == 0 )
   if ( GetJournalIndex "_GL_Caravan_Toys1" < 10 )
      Disable
   else
      if ( CellChanged == 1 )
         Enable
            set done to 1
         return
      endif
   endif
endif

;reset playlist
if ( CellChanged == 1 )
   set playlist to 0
endif

; Bards only play at night:
if ( done == 1 )
if ( GameHour >= 3 )
   if ( GameHour < 18 )
      if ( CellChanged == 1 )
         Disable
         Return
      endif
   endif
elseif ( GameHour < 3 )
   if ( GameHour >= 18 )
      if ( CellChanged == 1 )
         enable
      endif
   endif
endif
endif

; Avoid clash with game music:
if ( done == 1 )
if ( GameHour < 3 )
   if ( GameHour >= 18 )
      StreamMusic, "silent.mp3"
; Jukebox toplay music in sequence
      if ( playlist == 0 )
         if ( GetSoundPlaying "_GL_guitar_7" == 1 )
            return
         else
            PlaySound3DVP "_GL_guitar_2", 1.0, 1.0
            set playlist to 1
         endif
      elseif ( playlist == 1 )
         if ( GetSoundPlaying "_GL_guitar_2" == 1 )
            Return
         else
            PlaySound3DVP "_GL_guitar_3", 1.0, 1.0
         set playlist to 2
         endif
      elseif ( playlist == 2 )
         if ( GetSoundPlaying "_GL_guitar_3" == 1 )
            Return
         else
            PlaySound3DVP "_GL_guitar_4", 1.0, 1.0
         set playlist to 3
         endif
      elseif ( playlist == 3 )
         if ( GetSoundPlaying "_GL_guitar_4" == 1 )
            Return
         else
            PlaySound3DVP "_GL_guitar_5", 1.0, 1.0
         set playlist to 4
         endif
      elseif ( playlist == 4 )
         if ( GetSoundPlaying "_GL_guitar_5" == 1 )
            Return
         else
            PlaySound3DVP "_GL_guitar_6", 1.0, 1.0
         set playlist to 5
         endif
      elseif ( playlist == 5 )
         if ( GetSoundPlaying "_GL_guitar_6" == 1 )
            Return
         else
            PlaySound3DVP "_GL_guitar_7", 1.0, 1.0
         set playlist to 0
         endif
      endif
   endif
endif
endif

End _GL_Caravan_Toy1
- и всё заработало :-)
А вот это:

....
P.S.
if ( CellChanged == 1 ) - в локальных скриптах срабатывает только при следующем возвращении

StreamMusic - устанавливает громкость 100 (не желательно использовать)
- Да, if ( CellChanged == 1 ) - при повторном входе-выходе из ячейки, а StreamMusic - да, громкость 100, но можно регулировать потом в меню, если это нужно  :blush2:  но  "_GL_Caravan_Toy1"->Playsound3DVP "_GL_guitar_6" 0.5 0.5 - не работает на 0.5, а слышится только на 1.0  :(
И.. некстати я забыл.... когда сделал куклу барабанщика и лютнерши миском, что миски почему-то не анимируют, как npc, crea и активы... но это повод в квесте заменить недвигающееся чучело с барабаном на чучело с двигающимися клешнями  :D
 :hi :P
« Последнее редактирование: 11 Сентябрь, 2011, 07:19:25 от Galib »
De gustibus et coloribus non disputandum est
Награды За создание новогоднего настроения Всем принявшим участие в 9-летии Тиарума Всем форумчанам, принимавшим участие в праздновании 10-летия Морровинд Награждаются форумчане, заставшие зарождение Румора

Оффлайн ZWolol

  • *
  • Сообщений: 10
  • Репутация: 0
  • Пол: Мужской
    • ICQ клиент - 292954491
    • Просмотр профиля
Именно if ( CellChanged == 1 ) недавал в первом скрипте задисейблится.
Playsound3DVP играет на 1.0 но не устанавливает громкость всей музыки на 100%
миски сами не анимируют, как и активы. без PlayGroup

Оффлайн Galib

  • WhiteUglyGuar
  • *
  • Сообщений: 1262
  • Репутация: 15.3
  • Пол: Мужской
  • WhiteUglyGuar
    • Просмотр профиля
    • Galib Morrowind
    • Email
 :meeting: Конкретного настроения  ;)... такое, которое и хорошо для скриптов  :yes:
ZWolol, Спасибо за поправку об анимации с мисками и с активаторами. Я уже к этому моменту поменял кукла с мисков на активаторы, зашел в игру и вспомнил тоже что активы не анимируют сами... переделаю кукол в креатюр  :huh:
...эхх... если б кто потом переправил все мои скрипты, в чём ранее иногда помогал GWAThlobal... но теперь их, скриптов, мноого, несколько сотен, а еще и все остальные "добаленные" модом не мои, то було бы похорошеее, но... не люблю приставки "если" "бы" и пр. :yes:
 :hi
De gustibus et coloribus non disputandum est
Награды За создание новогоднего настроения Всем принявшим участие в 9-летии Тиарума Всем форумчанам, принимавшим участие в праздновании 10-летия Морровинд Награждаются форумчане, заставшие зарождение Румора

Оффлайн Galib

  • WhiteUglyGuar
  • *
  • Сообщений: 1262
  • Репутация: 15.3
  • Пол: Мужской
  • WhiteUglyGuar
    • Просмотр профиля
    • Galib Morrowind
    • Email
 :meeting: Программного настроения  ;) которое всё по программе делает и само как программа, пока не не находит то, что не может скомпилировать и само себя так же уже не может и вылетает в трубу  :crazy:
Если кто-то чего-то подскажет - буду рад и заранее  :spasibo:
Сделал отдельный от большого мода плаг с навешиванием щитов за спину во время когда оружие игрока не обнажено. Поскольку движок не позволяет обнажать и "зачехлить" щит, то естествнно я сделал на каждый щит отдельные его де модельки только переделанные для навешивания за спину вместо слота наплечника. и получается, что когда оружие в ножнах - игрок не в бою или катует закл, то и щит не нужен в руках, и он делжен изчезнуть, а появиться другой - за спиной. Но, скрипт на предмете не может удалить сам себя, потому я навесил на дубли разные скрипта и один добавляет другой, а тот в свою очередь удаляет первый и наоборот, в зависимости от положение переменной и её проверки: if ( Player -> GetWeaponDrawn == 0 ) И.. ща приведу скрипт :yes:, только расширенный, потому что хотелось сделать так, чтобы и неписи, хотя бы охранники, которых много и все они шастают со щитами наперевес, и у них вполне понятно какие щиты и их ID. Начать решил с имперских - их в "ванильном" Морре 50-т и щит у всех одинаковый ( в своём моде оин у меня с разными, но я потом разберусь ;)) но, тоже можно сделать и со стражниками Хлаалу, Редорана и Телвани - их так же много и у всех одинаковые щиты.
Скрип компилируется, но не работает  :(

вот :
Спойлер
Begin _GL_ab_imp_Sh

Short OnPCEquip
Short Shield_ImpB
Short Move_ImpB
Short Equip
Short Shield_ImIB
Short Move_ImIB
Short FrameCount
Short controlvar
Short button
Short activate_menu
Short increments
Short angle_increments
Short lockit
float   currxangle
float   curryangle
float   currzangle
float   currxpos
float   currypos
float   startxangle
float   startyangle
float   startzangle
float   currzpos
float   startxpos
float   startypos
float   startzpos

if ( MenuMode == 1 )
   Set FrameCount to 18
   Return
endif

if ( FrameCount < 18 )
   Set FrameCount to ( FrameCount + 1 )
   Return
endif
set FrameCount to 0

if ( OnPCEquip )
   if ( Player -> GetWeaponDrawn == 0 )
      if ( Shield_ImpB == 0 )
         If ( Player -> GetItemCount "imperial_shield_b" < 1 )
            Player -> AddItem, "imperial_shield_b" 1
               Player -> Equip, "imperial_shield_b" 1
            set Shield_ImpB to 1
         endif
      endif
   elseif ( Player -> GetWeaponDrawn == 1 )
      if ( Move_ImpB == 0 )
         If ( Player -> GetItemCount "imperial_shield_b" >= 1 )
            Player -> RemoveItem, "imperial_shield_b" 1
            Set Move_ImpB to 1
         endif
      endif
   endif
endif

if ( Equip )
   if ( "Imperial Guard"->GetWeaponDrawn == 0 )
      if ( Shield_ImIB == 0 )
         If ( "Imperial Guard"->GetItemCount "imperial_shield_b" < 1 )
            "Imperial Guard"->RemoveItem "imperial right pauldron" 1
            "Imperial Guard"->AddItem "imperial_shield_b" 1
               "Imperial Guard"->Equip "imperial_shield_b" 1
            set Shield_ImIB to 1
         endif
      endif
   elseif ( "Imperial Guard"->GetWeaponDrawn == 1 )
      if ( Move_ImIB == 0 )
         If ( "Imperial Guard"->GetItemCount "imperial_shield_b" >= 1 )
            "Imperial Guard"->RemoveItem "imperial_shield_b" 1
            "Imperial Guard"->AddItem "imperial right pauldron" 1
               "Imperial Guard"->Equip "imperial right pauldron" 1
            Set Move_ImIB to 1
         endif
      endif
   endif
endif


;******************************************************************************
; If we're outside, there's no need for this script at all, or Not?

If (GetInterior == 0)
   return
endif

; This code makes sure that the object acts like a regular item
; that you can pick up and place in your inventory while
; in menu mode

if ( menumode == 1 )
   if (OnActivate == 1)
      Activate
      set lockit to 0
   endif
   return
endif

; If controlvar = -1 means the player selected the "Take" option
; in the menu and lets you pick up the item

if (controlvar == -1)
   Activate
   set controlvar to 0
   set lockit to 0
   return
endif

;Locks the painting position back in place
;Fixes a problem with the positioned object going back to where
;you dropped it after you load a savegame
;There's no way to know when the game is loaded that I know.
;I set the variable "lockit" to 1 whenever the painting is positioned
;When it is set to 1 this piece of code checks
;to see if the object is out of place and puts it back where it's
;supposed to be.

if (lockit == 1)
   SetAngle, z, currzangle
   if ( GetPos, z != currzpos)
      SetPos, x, currxpos
      SetPos, y, currypos
      SetPos, z, currzpos
      return
   elseif ( GetPos, y != currypos)
      SetPos, x, currxpos
      SetPos, y, currypos
      SetPos, z, currzpos
      return
   elseif ( GetPos, x != currxpos)
      SetPos, x, currxpos
      SetPos, y, currypos
      SetPos, z, currzpos
      return
   endif
endif

; End of Lock check

;*************************************** Starting Menu

if ( OnActivate == 1 )
   set increments to 1
   set angle_increments to 1
   set activate_menu to 1
   set controlvar to 1
   set startxpos to GetPos, x
   set startypos to GetPos, y
   set startzpos to GetPos, z
   set startxangle to GetAngle, x
   set startyangle to GetAngle, y
   set startzangle to GetAngle, z
   set currxpos to GetPos, x
   set currypos to GetPos, y
   set currzpos to GetPos, z
elseif (controlvar ==0)
   return
   set lockit to 0
endif

if (activate_menu == 1)
   MessageBox " ", "Взять", "Поднять", "Вращать", "Позиция", "Сделанно"
   set activate_menu to 0
   set lockit to 0
endif   

if (controlvar ==1)
   set button to GetButtonPressed
   if ( button == -1 )
      return
   elseif ( button == 0)
      set controlvar to -1
      set activate_menu to 0
      return
   elseif ( button == 1)
      SetAngle, x, 270
      SetAngle, y, 0
      SetAngle, z, 0
      set controlvar to 0
      set activate_menu to 0
      set lockit to 1
      return
   elseif ( button == 2)
      set controlvar to 2
      set activate_menu to 2
   elseif ( button == 3)
      set controlvar to 3
      set activate_menu to 3
   else
      set controlvar to 0
      set activate_menu to 0
      set lockit to 1
      return
   endif
endif

;******************************************** Rotation Menu
if (activate_menu ==2)
   if (angle_increments == 1)
      MessageBox "Меню вращения", "Возрастание на 1", "Ось X", "Ось Y", "Ось Z",  "Сброс на 0", "Отменить",  "Назад"
   elseif (angle_increments == 5)
      MessageBox "Меню вращения", "Возрастание на 5", "Ось X", "Ось Y", "Ось Z",  "Сброс на 0", "Отменить",  "Назад"
   elseif (angle_increments == 45)
      MessageBox "Меню вращения", "Возрастание на 45", "Ось X", "Ось Y", "Ось Z",  "Сброс на 0", "Отменить",  "Назад"
   else
      MessageBox "Меню вращения", "Возрастание на 90", "Ось X", "Ось Y", "Ось Z",  "Сброс на 0", "Отменить",  "Назад"
   endif
   set activate_menu to 0
endif
   
if (controlvar == 2)
   set currxangle to GetAngle, x
   set curryangle to GetAngle, y
   set currzangle to GetAngle, z
   set button to GetButtonPressed
   if (button == -1)
      return
   elseif (button == 0)
      if (angle_increments == 1)
         set angle_increments to 5
      elseif (angle_increments == 5)
         set angle_increments to 45
      elseif (angle_increments == 45)
         set angle_increments to 90
      else
         set angle_increments to 1
      endif
      set activate_menu to 2
      return
   elseif (button == 1)
      set currxangle to (currxangle + angle_increments)
      if (currxangle >= 360)
         set currxangle to (currxangle - 360)
      endif
      SetAngle, x, currxangle
      set activate_menu to 2
      return
   elseif (button == 2)
      set curryangle to (curryangle + angle_increments)
      if (curryangle >= 360)
         set curryangle to (curryangle - 360)
      endif
      SetAngle, y, curryangle
      set activate_menu to 2
      return
   elseif (button == 3)
      set currzangle to (currzangle + angle_increments)
      if (currzangle >= 360)
         set currzangle to (currzangle - 360)
      endif
      SetAngle, z, currzangle
      set activate_menu to 2
      return
   elseif (button == 4)
      SetAngle, x, 0
      SetAngle, y, 0
      SetAngle, z, 0
      set activate_menu to 2
      return
   elseif (button == 5)
      SetAngle, x, startxangle
      SetAngle, y, startyangle
      SetAngle, z, startzangle
      set currxangle to startxangle
      set curryangle to startyangle
      set currzangle to startzangle
      set activate_menu to 2
      return
   else
      set activate_menu to 1
      set controlvar to 1
      return
   endif
endif
;******************************************** Position Menu
if (activate_menu ==3)
   if (increments == 1)
      MessageBox "Меню позиции", "Возрастание на 1", "+X", "-X", "+Y", "-Y", "+Z", "-Z", "Отмена", "Назад"
   elseif (increments == 5)
      MessageBox "Меню позиции", "Возрастание на 5", "+X", "-X", "+Y", "-Y", "+Z", "-Z", "Отмена", "Назад"
   else
      MessageBox "Меню позиции", "Возрастание на 10", "+X", "-X", "+Y", "-Y", "+Z", "-Z", "Отмена", "Назад"
   endif
   set activate_menu to 0
endif
if (controlvar == 3)
   set button to GetButtonPressed
   if (button == -1)
      return
   elseif (button == 0)
      if (increments == 1)
         set increments to 5
      elseif (increments == 5)
         set increments to 10
      else
         set increments to 1
      endif
      set activate_menu to 3
      return
   elseif (button == 1)
      set currxpos to (currxpos + increments)
      SetPos, x, currxpos
      set activate_menu to 3
      return
   elseif (button == 2)
      set currxpos to (currxpos - increments)
      SetPos, x, currxpos
      set activate_menu to 3
      return
   elseif (button == 3)
      set currypos to (currypos + increments)
      SetPos, y, currypos
      set activate_menu to 3
      return
   elseif (button == 4)
      set currypos to (currypos - increments)
      SetPos, y, currypos
      set activate_menu to 3
      return
   elseif (button == 5)
      set currzpos to (currzpos + increments)
      SetPos, z, currzpos
      set activate_menu to 3
      return
   elseif (button == 6)
      set currzpos to (currzpos - increments)
      SetPos, z, currzpos
      set activate_menu to 3
      return
   elseif (button == 7)
      SetPos, x, startxpos
      SetPos, y, startypos
      SetPos, z, startzpos
      set currxpos to startxpos
      set currypos to startypos
      set currzpos to startzpos
      set activate_menu to 3
      return
   else
      set activate_menu to 1
      set controlvar to 1
      return
   endif
endif

End _GL_ab_imp_Sh

На щате за спиной такой же, но с изменёнными ID и переменными, Вот:
Begin _GL_ab_imp_sh_b

Short OnPCEquip
Short Shield_ImpA
Short Move_ImpA
Short Equip
Short Shield_ImIA
Short Move_ImIA
Short FrameCount
Short controlvar
Short button
Short activate_menu
Short increments
Short angle_increments
Short lockit
float   currxangle
float   curryangle
float   currzangle
float   currxpos
float   currypos
float   startxangle
float   startyangle
float   startzangle
float   currzpos
float   startxpos
float   startypos
float   startzpos

if ( MenuMode == 1 )
   Set FrameCount to 18
   Return
endif

if ( FrameCount < 18 )
   Set FrameCount to ( FrameCount + 1 )
   Return
endif
set FrameCount to 0

if ( OnPCEquip == 1 )
   if ( Player -> GetWeaponDrawn == 0 )
      if ( Move_ImpA == 0 )
         If ( Player -> GetItemCount "imperial shield" >= 1 )
            Player -> RemoveItem, "imperial shield" 1
            set Move_ImpA to 1
         endif
      endif
   elseif ( Player -> GetWeaponDrawn == 1 )
      if ( Shield_ImpA == 0 )
         If ( Player -> GetItemCount "imperial shield" < 1 )
            Player -> AddItem, "imperial shield" 1
               Player -> Equip, "imperial shield" 1
            Set Shield_ImpA to 1
         endif
      endif
   endif
endif

if ( Equip == 1 )
   if ( "Imperial Guard"->GetWeaponDrawn == 0 )
      if ( Move_ImIA == 0 )
         If ( "Imperial Guard"->GetItemCount "imperial shield" >= 1 )
            "Imperial Guard"->RemoveItem "imperial shield" 1
            set Move_ImIA to 1
         endif
      endif
   elseif ( "Imperial Guard"->GetWeaponDrawn == 1 )
      if ( Shield_ImIA == 0 )
         If ( "Imperial Guard"->GetItemCount "imperial shield" < 1 )
            "Imperial Guard"->AddItem "imperial shield" 1
               "Imperial Guard"->Equip "imperial shield" 1
            Set Shield_ImIA to 1
         endif
      endif
   endif
endif


.... тут далее то же, что и в предыдущем - для передвижения щита в простанстве и "навещивания на стену ;)

...
End _GL_ab_imp_sh_b
Скрип работает только для игрока, а Вот то, что выделено синим - не работает, как предполагалось, на стражниках имперских :( в не зависимости от того, если ли такой щит с этим скрпитом у ирока или нет....
У кого какие-то мысли будут?
 :hi
« Последнее редактирование: 24 Октябрь, 2012, 01:35:54 от Galib »
De gustibus et coloribus non disputandum est
Награды За создание новогоднего настроения Всем принявшим участие в 9-летии Тиарума Всем форумчанам, принимавшим участие в праздновании 10-летия Морровинд Награждаются форумчане, заставшие зарождение Румора

Оффлайн Poison Angel

  • Супермодератор форума
  • *
  • Сообщений: 662
  • Репутация: 4.7
  • Пол: Мужской
    • ICQ клиент - 282758820
    • Просмотр профиля
Galib, используй, пожалуйста, спойлеры, когда выкладываешь объемные листинги.



Чем больше я узнаю людей, тем больше люблю собак.
Награды За огромный вклад в развитие Румора Активным модераторам публичных разделов форума, проработавшим более года

Оффлайн Galib

  • WhiteUglyGuar
  • *
  • Сообщений: 1262
  • Репутация: 15.3
  • Пол: Мужской
  • WhiteUglyGuar
    • Просмотр профиля
    • Galib Morrowind
    • Email
 :meeting: Сриптового настроения, не знающего и не признающего ошибок и неточностей, а коль такие допущены кем-то, кто скрипты пишет, то настроение не компилируется, или компилируется, но всёравно не проявляется никак и повисает :crazy:
Судя по отсутствию ответов никому не надо уже скриптописание для прапрадеда современного опосившегося и огламурившегося Ская... ну и Вивек с ним, и со скриптами :blush2:. Разберусь со стражниками иначе, другим скриптом, в случае начала ими боя, им всучивать буду то, что изначально просто отниму :crazy:
 :hi
De gustibus et coloribus non disputandum est
Награды За создание новогоднего настроения Всем принявшим участие в 9-летии Тиарума Всем форумчанам, принимавшим участие в праздновании 10-летия Морровинд Награждаются форумчане, заставшие зарождение Румора

Оффлайн Galib

  • WhiteUglyGuar
  • *
  • Сообщений: 1262
  • Репутация: 15.3
  • Пол: Мужской
  • WhiteUglyGuar
    • Просмотр профиля
    • Galib Morrowind
    • Email
 :meeting: Забытого настроения Всем сюда входящим  :yes: такого, какое было тогда, когда Morrowind был молод и силён, и естественно нравился Всем  :yahoo:
...Вдруг кто сподобится сюда зайти, да ещё и ответить что-то  :nunu:
Кто знает или догадывается, как можно сделать недоступность игроку выбор расы в начале игры иначе т.е. сделать для него доступной только одну, и сделать иначе, чем просто убрав птичку в меню расы в CS? А если никак иначе, то вот как сделать так, чтобы по прошествии определённого времени, после прохождения игроком старта персонажем той расы, что я изначально ему предложу, и  эти "недоступные" "ванильные" расы стали снова доступны? Единственное, что пришло в голову - это предложить игроку после прохождения того, что в начале, выйти из игры и подключить дополнительный плаг, который "снова "включит" доступ к выбору расы и игрок сможет её, расу, поменять уже по своему выбору, на какую-то другую, когда, скажем, найдёт волшебную лампу  но не Алладина, которую тоже можно сделать, и из неё выползет разгневанный/обрадованный грязекраб/золотая святоша или клон Вивека  :jokingly: а когда найдёт кувшин Беседки или покурит трубку Galib'a  :D ...
Если я правильно понимаю, то скриптами нельзя никак подключить дополнительный плаг прямо в игре и нельзя "поставить птички" в меню расы...
Мож будут у кого какие-то мысли о старой и забытой игре?
 :hi
De gustibus et coloribus non disputandum est
Награды За создание новогоднего настроения Всем принявшим участие в 9-летии Тиарума Всем форумчанам, принимавшим участие в праздновании 10-летия Морровинд Награждаются форумчане, заставшие зарождение Румора

Теги:
 

Разные вопросы о двемерах Скайрима

Автор TiaraРаздел Вселенная TES

Ответов: 38
Просмотров: 6235
Последний ответ 28 Ноябрь, 2014, 20:31:05
от ORK
Вопросы по созданию Диалогов

Автор EmzarРаздел TES III: Morrowind, Tribunal, Bloodmoon

Ответов: 17
Просмотров: 8627
Последний ответ 26 Декабрь, 2008, 15:07:43
от zOmb
ЧАстые ВОпросы по форуму

Автор TiaraРаздел Приемная

Ответов: 0
Просмотров: 3493
Последний ответ 21 Март, 2011, 23:45:13
от Tiara
Проблемы без решения

Автор RetributorРаздел Гильдия Неприкаянных

Ответов: 8
Просмотров: 5654
Последний ответ 16 Ноябрь, 2005, 12:05:49
от Retributor
Вопросы по 3dsmax

Автор КаМиРаздел Мастерская 3D

Ответов: 462
Просмотров: 102478
Последний ответ 15 Октябрь, 2013, 00:31:24
от Svinec
Вопросы для ответов

Автор GalibРаздел TES III: Morrowind, Tribunal, Bloodmoon

Ответов: 99
Просмотров: 34673
Последний ответ 01 Декабрь, 2014, 14:24:44
от Flicker
Вопросы и трения

Автор DemonaРаздел За гранью Хаоса

Ответов: 11
Просмотров: 6550
Последний ответ 13 Ноябрь, 2005, 12:42:07
от Retributor
Вопросы по Exiles

Автор Jedi_ИльяРаздел Легенды о подвигах героев

Ответов: 18
Просмотров: 10389
Последний ответ 23 Август, 2005, 01:04:11
от Jedi_Илья
Вопросы о Программах и Утилитах для Tes 4 Oblivion.

Автор GarinРаздел Программы и утилиты для TES IV

Ответов: 62
Просмотров: 15099
Последний ответ 26 Октябрь, 2013, 12:29:16
от Luna
Обучение скриптам

Автор GL.SamРаздел Деканат(закрыт на бессрочные каникулы)

Ответов: 10
Просмотров: 7647
Последний ответ 18 Август, 2007, 22:29:29
от Tiberius Flavius

Поиск

 
Top
SimplePortal 2.3.5 © 2008-2012, SimplePortal