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

Автор Тема: Помогите со скриптом  (Прочитано 5740 раз)

Описание:

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

Оффлайн ElderXardas

  • *
  • Сообщений: 33
  • Репутация: 0
  • Пол: Мужской
    • ICQ клиент - 464107639
    • Просмотр профиля
    • Email
Помогите со скриптом
« : 23 Июнь, 2008, 17:41:01 »
0
Можно ли написать скрипт передвижения предмета?Например ,чтобы стул самостоятельно пролетал из одной части дома в другую.

Оффлайн Visman

  • *
  • Сообщений: 185
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
    • AllTES: Плагины и моды
Re: Помогите со скриптом
« Ответ #1 : 23 Июнь, 2008, 18:33:27 »
0
Можно :)
Изучаем скриптовый язык (тут на форуме учебник) и вспоминаем формулы перемещения объекта из точки А в точку Б.
Вам не кажется, что plаygrоund.ru есть синоним слову ворье?

Оффлайн ElderXardas

  • *
  • Сообщений: 33
  • Репутация: 0
  • Пол: Мужской
    • ICQ клиент - 464107639
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #2 : 23 Июнь, 2008, 22:22:54 »
0
Может чуток поможете или намекнете?)Или хотяб скажите где это в учебнике находится

Оффлайн Visman

  • *
  • Сообщений: 185
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
    • AllTES: Плагины и моды
Re: Помогите со скриптом
« Ответ #3 : 24 Июнь, 2008, 10:09:04 »
0
Движение по прямой из точки А (x1,y1,z1) в точку Б (x2,y2,z2). Координаты перемещаемого объекта (x0,y0,z0). Коэф. k = 0...1
Формулы: x0 = (x2-x1)*k + x1; y0 = (y2-y1)*k + y1; z0 = (z2-z1)*k + z1.
Из скриптового языка нужны функцмм позицирования объекта в пространстве.
Вам не кажется, что plаygrоund.ru есть синоним слову ворье?

Оффлайн ElderXardas

  • *
  • Сообщений: 33
  • Репутация: 0
  • Пол: Мужской
    • ICQ клиент - 464107639
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #4 : 24 Июнь, 2008, 21:09:27 »
0
Я решил использовать мгновенное перемещение (Функция "SetPos" ). Но и тут у меня проблема : когда я нажимаю на объект он перемещается в заданные координаты,точнее почему-то перемещаются только текстуры! Т.Е.  на том месте где стоял этот объект находится "препяствие" (ну как бы этот объект только без текстур)  а  перемещаются только текстуры.Почму? И как это исправить?

Вот мой скрипт:

scn poltergeust
begin OnActivate

float curX
float curY
Styl. SetPos y, 47952.9453
Styl. SetPos x, 13093.9980

end

Оффлайн Visman

  • *
  • Сообщений: 185
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
    • AllTES: Плагины и моды
Re: Помогите со скриптом
« Ответ #5 : 25 Июнь, 2008, 06:57:31 »
0
Ага есть такая бяка. (После того как покинешь ячейку и вернешься назад, все нормально становится)
Попробуй перед началом перемещения выключить объект командой Disable.
А в новой точке пространства включить его командой Enable.
Вам не кажется, что plаygrоund.ru есть синоним слову ворье?

Оффлайн ElderXardas

  • *
  • Сообщений: 33
  • Репутация: 0
  • Пол: Мужской
    • ICQ клиент - 464107639
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #6 : 25 Июнь, 2008, 11:04:00 »
0
Спасибо))) Теперь всё работает

Оффлайн ElderXardas

  • *
  • Сообщений: 33
  • Репутация: 0
  • Пол: Мужской
    • ICQ клиент - 464107639
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #7 : 29 Июль, 2008, 20:11:52 »
0
У вас на сайте я нашел скрипт на таймер.(ну типа через 25 сек чё-то происходит)
Поменял GameMode на OnActivate  и скрипт перестал работать. Почему? Как можно это исправиь? Я пытался сам исправить его, полистал учебник ,но так и не получилось(

scn aaBegin

float timer
short init

begin OnActivate

 if init == 0
       
         set timer to 5
         set init to 1
    else
         if timer > 0
             set timer to timer - getSecondsPassed
         else
           messagebox "Быстрее!"
         endif
    endif
end

Оффлайн Visman

  • *
  • Сообщений: 185
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
    • AllTES: Плагины и моды
Re: Помогите со скриптом
« Ответ #8 : 30 Июль, 2008, 20:10:34 »
0
Блок OnActivate выполняется всего один раз при каждой активации объекта!!!
Пробуем так:
scn aaBegin

float timer
short init

begin OnActivate

 if init == 0
         set timer to 5
         set init to 1
 endif
 Activate
end

Begin GameMode       

 if init == 1
         if timer > 0
             set timer to timer - getSecondsPassed
         else
           messagebox "Быстрее!"
           set init to 2
         endif
 endif
end

Через 5 секунд после первой активации объекта должно выскачить сообщение.
Хотя возможно нужен еще аналогичный блок MenuMode блоку GameMode, чтобы работало когда сундук открыт и его меню на экране.
Вам не кажется, что plаygrоund.ru есть синоним слову ворье?

Оффлайн ElderXardas

  • *
  • Сообщений: 33
  • Репутация: 0
  • Пол: Мужской
    • ICQ клиент - 464107639
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #9 : 30 Июль, 2008, 22:25:33 »
0
Спасибо, всё работает, только вопрос по этому скрипту: 
        if init == 1
         if timer > 0
             set timer to timer - getSecondsPassed
         else
           messagebox "Быстрее!"
В чём сдесь суть? в том что мы установили timer = 5, "дали ему секунды"(set timer to timer - getSecondsPassed)
и когда(через 5 сек)  Timer становится равным 0 ,начинает выполнятся другое
условие(else messagebox "Быстрее!")?
Просто я несколько часов пытался сам написать этот скрипт , но так и не получилось.

Оффлайн Visman

  • *
  • Сообщений: 185
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
    • AllTES: Плагины и моды
Re: Помогите со скриптом
« Ответ #10 : 01 Август, 2008, 16:09:28 »
0
Таймер установли на 5 сек. Потом в этом условии проверяем в каждом фрейме в режиме игрок в игре: Если таймер больше нуля, то уменьшаем его значение на время пройденное с предыдущего выполнения скрипта (обычно время от предыдущего фрейма), иначе выводим сообщение "Быстрее!".
Проверка init добавлена для еденичного выполнения скрипта, когда активация прошла в первый раз.
Такой же блок предлагал запихать в MenuMode, чтобы если это сундук и он открыт скрипт так же работал. Т.е. добавим еще это в скрипт:

Begin MenuMode       

 if init == 1
         if timer > 0
             set timer to timer - getSecondsPassed
         else
           messagebox "Быстрее!"
           set init to 2
         endif
 endif
end
Вам не кажется, что plаygrоund.ru есть синоним слову ворье?

Оффлайн ElderXardas

  • *
  • Сообщений: 33
  • Репутация: 0
  • Пол: Мужской
    • ICQ клиент - 464107639
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #11 : 02 Август, 2008, 00:20:11 »
0
У меня возник еще один вопрос. Я знаю что есть такая функция GetCurrentTime которая возращает текущие время в игре ,а есть функция которая устанавливает время в игре?Мне например нужно чтобы игрок появился в одном месте именно утром . Сможете мне помочь?

Оффлайн ElderXardas

  • *
  • Сообщений: 33
  • Репутация: 0
  • Пол: Мужской
    • ICQ клиент - 464107639
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #12 : 12 Август, 2008, 01:19:07 »
0
ауу народ!Помогите плиз  :help:

Оффлайн ElderXardas

  • *
  • Сообщений: 33
  • Репутация: 0
  • Пол: Мужской
    • ICQ клиент - 464107639
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #13 : 23 Август, 2008, 20:04:01 »
0
 :yahoo:Наконец-то я сделал то,ради чего и начал изучать скриптовый язык обливиона :) Конечно не совсем то что я хотел получилось,да и не доделал еще немного ...:blush: Вот по этому и обращаюсь к вам за помощью.У меня получилось судно,которое должно проплыть весьма большое расстояние.Но проплывает совсем не далеко,и через минуту оно исчезает.Получается что мое судно может проплыть только 3 ячейки.Это  расстояние от портовой части имперсокого города до моста у западного входа :)А мне нужно чтобы судно проплывало значительно большие расстояния :)Команды Disable и Enable не помогают.

Оффлайн zOmb

  • *
  • Сообщений: 504
  • Репутация: 0
    • ICQ клиент - 272034714
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #14 : 28 Август, 2008, 15:48:24 »
0
Я спец только по Морре, так что касательно устройства Облы могу и ошибиться
>а есть функция которая устанавливает время в игре?
Есть глобальная переменная gamehour
>Получается что мое судно может проплыть только 3 ячейки
Опять же, не знаю, как это работает в Обливионе, но в Морре медмаксовская лодка в каждой ячейке удалялась и создавалась новая. Могу предположить, что корабль проходит только 3 квадрата из-за того, что единовременно грузится квадрат из 3*3 ячеек, и когда он доходит до края своих родных 3*3, то происходит клин.
Удаление происходило через SetDelete, 1.
Создание через глобальный скрипт, запускаемый перед удалением.
Глава проекта "Сыны Кагренака"
Награды Награждаются форумчане, заставшие зарождение Румора

Оффлайн DeCroix

  • *
  • Сообщений: 7
  • Репутация: 0
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #15 : 11 Август, 2010, 17:14:22 »
0
Решил не создавать отдельную тему, название этой темы как раз соответствует моему вопросу.

Как сделать так что бы вариант ответа "Да" появлялся толька при наличии предмета в инвентаре.


Вот мой скрипт:

ScriptName 002

Short controlvar
Short button

Begin OnActivate
     If ( controlvar == 0 )
         MessageBox "Принес яблоко?", "Да", "Нет"
         Set controlvar to 1
     ElseIf ( controlvar > 1 )
         Activate
     EndIf
End

 
Begin GameMode
     If ( controlvar == 1 )
         Set button to GetButtonPressed
         If ( button == -1 )
             Return
         ElseIf ( button == 0)
             MessageBox "Отлично."
             Set controlvar to 2
         Else
             MessageBox "Тогда что ты тут делаешь?."
             Set controlvar to 0
         EndIf
     ElseIf ( controlvar == 2 )
         Player.RemoveItem Tyb001, 1
         Disable Ogre02
         Set controlvar to 3
     EndIf
End

Оффлайн Poison Angel

  • Супермодератор форума
  • *
  • Сообщений: 662
  • Репутация: 4.7
  • Пол: Мужской
    • ICQ клиент - 282758820
    • Просмотр профиля
Re: Помогите со скриптом
« Ответ #16 : 12 Август, 2010, 08:16:54 »
0
Как сделать так что бы вариант ответа "Да" появлялся толька при наличии предмета в инвентаре.

Я думаю, поможет функция GetItemCount ..., которая вернет тебе количество нужных предметов у игрока. А там уж, в зависимости от результата, задавать вопрос с вариантом "Да" в ответах, или другой, без "Да".
Подробности по использованию функции смотри в OSFM.



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

Оффлайн DeCroix

  • *
  • Сообщений: 7
  • Репутация: 0
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #17 : 12 Август, 2010, 13:13:08 »
0
Вай спасибо, буду пробовать!  :)

Оффлайн NAVYgator

  • *
  • Сообщений: 1472
  • Репутация: 30.7
  • Пол: Мужской
  • скрипты никому не пишу
    • Просмотр профиля
    • Email
Re: Помогите со скриптом
« Ответ #18 : 07 Сентябрь, 2010, 10:20:59 »
0
Привет всем!
Похоже, что эта тема - одна из 3-х "живых" в данном разделе.
Поэтому пишу здесь :)

Посмотрите данный скрипт. Смысл скрипта такой: нужно определить тип Creature, взаимодействующего с объектом. Соответственно скрипт вешается на объект.

Вопрос - по Syntax функции GetCreatureType. Она - из OBSE 19
В http://cs.elderscrolls.com/constwiki/index.php/GetCreatureType написано:

Syntax:
(creatureType:short) reference.GetCreatureType objectID:ref

Я очень СИЛЬНО подозреваю, что в скрипте у меня ошибка.  :blush2:

Скрипт:
scn IdentifTarget

ref temp1 ;переменная для храниеня ID цели
short Target ;переменная для храниеня кода типа цели

begin OnActivate
set temp1 to GetActionRef

  if (temp1.IsCreature == 1) ;проверка - существо ли ЭТО. Синтаксис: "reference.IsCreature objectID:ref" - может здесь ошибка?
           set Target to GetCreatureType temp1 ; получение ТИПА существа по его ID из переменной
           Message "Target is a Monster %.0f - type", Target
else
           Message "Target is NOT a Monster"
  endif
end
Награды Всем форумчанам, принимавшим участие в праздновании 10-летия Морровинд За создание новогоднего настроения Всем принявшим участие в 9-летии Тиарума За огромный вклад в развитие Румора

Оффлайн Galib

  • WhiteUglyGuar
  • *
  • Сообщений: 1261
  • Репутация: 15.3
  • Пол: Мужской
  • WhiteUglyGuar
    • Просмотр профиля
    • Galib Morrowind
    • Email
Re: Помогите со скриптом
« Ответ #19 : 10 Январь, 2011, 09:03:59 »
0
Кх... то, что написано вверху: "Внимание: в этой теме не было ответов в течение, по крайней мере 120 дней. Возможно стоит рассмотреть вариант открытия новой темы"... неее если уж кто-то таки посмотрит, то пусть и сдесь. А потому вот, мож кто скажет чего-то... Я решил, потому как в патче к ACR скрипты всёравно делитить незя, переделать один хоть с како-то пользой и старался его как можно упростить. ЗАхотелось сделать так: что когда игроку достанется меч, то вынув его, меч  (или топор и другое оружие иль предмет), он через несколько секунд пропал из рук, а потом через две-три секунды снова появился, а потом снова пропал и в итоге, если игрок упорный  :yes: :fool:  :D ( а на название меча "необчный"  :D ), то это оружие награждает игрока поднятием каких-то харов немножко... так, для разнообразия игры  :)
Вот:

Begin AA_nordic_silver_short_script

Short OnPCEquip
short state
short done
float timer

if ( Menumode == 1 )
   return
endif

if ( done < 2 )
   if ( OnPCEquip )
      if ( Player -> GetWeaponDrawn == 1 )
         set state to Random, 100
         if ( state < 100 )
            set timer to ( timer + GetSecondsPassed )
            if ( timer > 5 )
               Disable
            elseif ( timer > 8 )
               Enable
            elseif ( timer > 13 )
               Disable
            elseif ( timer > 16 )
               Enable
            elseif ( timer > 21 )
               Disable
            else
               Enable
            Set timer to 0
            endif
         elseif ( state == 100 )
            Player->ModLuck 1
            Player->ModBlock 1
            Player->ModBluntweapon 1
            Player->ModLongblade 1
            Player->ModAxe 1
            Player->ModSpear 1
            Player->ModShortblade 1
               Messagebox "Со временем, пользуясь этим оружием Вы научились кое-чему и

кое-что узнали!"
            set done to 2
            return
         endif
      elseif ( Player -> GetWeaponDrawn == 0 )
         return
      endif
   elseif (OnPCEquip == 0 )
      return
   endif
elseif ( done == 2 )
   StopScript "AA_nordic_silver_short_script"
   return
endif

End AA_nordic_silver_short_script

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

Теги:
 

Помогите со скриптом(

Автор AzAzELРаздел Мастерская TES IV

Ответов: 18
Просмотров: 1489
Последний ответ 02 Октябрь, 2010, 20:28:01
от AzAzEL
Помогите со скриптом

Автор SinklРаздел Скриптинг под TES IV

Ответов: 6
Просмотров: 965
Последний ответ 27 Сентябрь, 2011, 14:04:30
от Sinkl
Помогите со скриптом

Автор Silent_AssassinРаздел Скриптинг под TES IV

Ответов: 49
Просмотров: 2045
Последний ответ 21 Октябрь, 2012, 20:41:20
от Silent_Assassin
Помогите со скриптом)

Автор AeroseРаздел Скриптинг под TES IV

Ответов: 14
Просмотров: 850
Последний ответ 19 Ноябрь, 2012, 09:20:47
от Aerose
Помогите со скриптом

Автор WereWolfРаздел Скриптинг под TES V

Ответов: 4
Просмотров: 1080
Последний ответ 15 Май, 2013, 14:12:29
от AleksTirex
Помогите со скриптом

Автор gloomdaemonРаздел Скриптинг под TES V

Ответов: 3
Просмотров: 1011
Последний ответ 26 Ноябрь, 2013, 19:59:54
от gloomdaemon
Помогите разобраться

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

Ответов: 1
Просмотров: 3416
Последний ответ 19 Август, 2005, 14:51:39
от GL.Sam
Помогите! Не могу молот разыскать

Автор КсенияРаздел TES III: Morrowind, Tribunal, Bloodmoon

Ответов: 5
Просмотров: 4063
Последний ответ 07 Январь, 2007, 15:44:48
от GL.Sam
Проблема Со Скриптом

Автор volandРаздел Скриптинг под TES IV

Ответов: 10
Просмотров: 7950
Последний ответ 01 Декабрь, 2007, 20:44:04
от Garin
Помогите плиииз написать скрипт отключающий свет

Автор VintРаздел Скриптинг под TES IV

Ответов: 3
Просмотров: 2637
Последний ответ 06 Март, 2008, 19:09:58
от LiLu

Поиск

 
Top
SimplePortal 2.3.5 © 2008-2012, SimplePortal