Перейти к содержимому


Фотография

Вопросы по скриптам

papyrus help скрипты вопросы

  • Авторизуйтесь для ответа в теме

#141 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Тема для вопросов по скриптингу.

Функции папируса:

На английском

На русском (не все, но базис)



 




  • Авторизуйтесь для ответа в теме
Сообщений в теме: 832

#142 Ссылка на это сообщение Sirin...

Sirin...
  • Следопыт
  • 89 сообщений
  •  

Отправлено

ГСПД...

Скажите, есть возможность где-нибудь достать уже готовый скрипт, который позволяет включать какой-то статичный объект, когда любой персонаж (не только игрок) входит в определенную зону (скажем, в пределы триггера), а затем отключать его и включать другой объект, когда персонаж покидает зону триггера? Устал искать, кучу инфы перерыл на английском языке, но ситуация еще усложняется тем, что у меня на компьютере компиляторы отказываются работать.

Если кто-то предложит помощь - буду очень благодарен. Заранее спасибо.

Не актуально.


Сообщение отредактировал Sirin...: 18 августа 2017 - 13:13


#143 Ссылка на это сообщение Sirin...

Sirin...
  • Следопыт
  • 89 сообщений
  •  

Отправлено

Уважаемые!

Расскажите, а есть ли какая-то скриптовая схема, которая позволила бы посчитать актеров внутри триггера? Ну то есть записать условие "когда здесь появляется один актер - действие начинается, пока здесь есть хотя бы один актер - действие выполняется, когда нет никого - действие прекращается"? То есть чтобы скрипт не реагировал на актеров, которые входят в поле действия триггера и выходят из него ровно до тех пор, пока не выйдет последний/не войдет первый? Я мастер объяснять, конечно, но... :D



#144 Ссылка на это сообщение YourBunnyWrote

YourBunnyWrote
  • Рабочий лень
  • 3 270 сообщений
  •    

Отправлено

Считай количество входящих и выходящих при помощи событий OnTriggerEnter и OnTriggerLeave соответственно.


Всё провисло и болтается.


#145 Ссылка на это сообщение Sirin...

Sirin...
  • Следопыт
  • 89 сообщений
  •  

Отправлено

Считай количество входящих и выходящих при помощи событий OnTriggerEnter и OnTriggerLeave соответственно.

Про них уже почитал, узнал. Но вот как именно считать в папирусе - это для меня загадка. Так что от помощи не отказался бы.



#146 Ссылка на это сообщение Sirin...

Sirin...
  • Следопыт
  • 89 сообщений
  •  

Отправлено

Ниет, чет я тупенький :з

Scriptname SRNewAutoLights extends ObjectReference 

Event OnTrigger(akActionRef)

if GetTriggerObjectCount() == 0
    ObjectReference.disable()
else
    ObjectReference.enable()
endIf

EndEvent

Не пойму, что здесь от меня требуется со словами missing ID at ')'



#147 Ссылка на это сообщение YourBunnyWrote

YourBunnyWrote
  • Рабочий лень
  • 3 270 сообщений
  •    

Отправлено

Не пойму, что здесь от меня требуется со словами missing ID at ')'

Смотря какая строка имеется ввиду. Скорее всего, не указан тип параметра akActionRef.
Вот накидал рабочий скрипт:

Scriptname SRNewAutoLights extends ObjectReference

Int _actrosCountInTriggerZone = 0
Int Property actrosCountInTriggerZone
    Function Set(Int newValue)
        If newValue < 0
            newValue = 0
        EndIf
        If newValue != _actrosCountInTriggerZone
            If newValue == 0 && _actrosCountInTriggerZone != 0
                TriggerActionStop()
            ElseIf newValue != 0 && _actrosCountInTriggerZone == 0
                TriggerActionStart()
            EndIf
            _actrosCountInTriggerZone = newValue
        EndIf
    EndFunction
    Int Function Get()
        Return _actrosCountInTriggerZone
    EndFunction
EndProperty

Event OnTriggerEnter(ObjectReference akActionRef)
    If akActionRef As Actor != None
        actrosCountInTriggerZone = actrosCountInTriggerZone + 1
    EndIf
EndEvent

Event OnTriggerLeave(ObjectReference akActionRef)
    If akActionRef As Actor != None
        actrosCountInTriggerZone = actrosCountInTriggerZone - 1
    EndIf
EndEvent

Function TriggerActionStart()
    Debug.MessageBox("В зону триггера вошли актёры")
EndFunction

Function TriggerActionStop()
    Debug.MessageBox("Зону триггера покинули актёры")
EndFunction

Всё провисло и болтается.


#148 Ссылка на это сообщение Vitalyudin

Vitalyudin
  • Existential Void Guardian


  • 323 сообщений
  •    

Отправлено

Не хотел бы навязываться и повторяться, но кто-нибудь что-нибудь по поводу моего вопроса может подсказать?



#149 Ссылка на это сообщение Sirin...

Sirin...
  • Следопыт
  • 89 сообщений
  •  

Отправлено

Вот накидал рабочий скрипт:

Дяденька, та Вы божэнька *О*

Спасибо большое, проверю.



#150 Ссылка на это сообщение Learoy

Learoy
  • Новенький
  • 4 сообщений

Отправлено

Решил я короче изучать скрипты,принцып их написания я уже понял и вот у меня возник вопрос к вам "Знающим людям")))Есть ли какой-нибуть список всех функций,событий и т.д?

#151 Ссылка на это сообщение YourBunnyWrote

YourBunnyWrote
  • Рабочий лень
  • 3 270 сообщений
  •    

Отправлено

Да, тут всё есть https://www.creation...ategory:Papyrus


Всё провисло и болтается.


#152 Ссылка на это сообщение Sevrat

Sevrat
  • Скиталец
  • 58 сообщений

Отправлено

Имеются 4 локации (в будущем будет больше) и имеется портал.. только вот нужно чтобы портал работал рандомно (рандомно выбирал в какую локацию переместить или еще лучше чтобы рандомные маркеры выбирал)
Например имеется 8 точек появления на четырех созданных мною локациях.. вхожу в портал и не знаю где появлюсь...
Не могу придумать как описать лучше.
Помогите со скриптом. 

Пытаю этот скрипт но ничего не выходит.


Сообщение отредактировал Sevrat: 28 сентября 2017 - 22:18

Однажды в правильном месте наступит нужный час.


#153 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

Пытаю этот скрипт но ничего не выходит.

Что не выходит? Не телепортирует? Или телепортирует, но четко в одно место?



#154 Ссылка на это сообщение Sevrat

Sevrat
  • Скиталец
  • 58 сообщений

Отправлено

Что не выходит? Не телепортирует? Или телепортирует, но четко в одно место?

Работает тот скрипт, пытался его модифицировать но видимо моих мозгов не достаточно, для этого...

Потому и попросил помочь...


Сообщение отредактировал Sevrat: 29 сентября 2017 - 17:23

Однажды в правильном месте наступит нужный час.


#155 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

Работает тот скрипт, пытался его модифицировать но видимо моих мозгов не достаточно, для этого...

Потому и попросил помочь...

Отличный ответ. Четко и точно по заданному вопросу.

Ты хоть видел, что я тебя спросил?



#156 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено

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


Если портал представляет из себя херню-активатор, по которой надо нажимать, чтоб телепортировало, то вот. Если же ты хочешь заходить в триггер и таким образом телепортироваться, нужен другой ивент.
 
Сам код


#157 Ссылка на это сообщение Sevrat

Sevrat
  • Скиталец
  • 58 сообщений

Отправлено

Если портал представляет из себя херню-активатор, по которой надо нажимать, чтоб телепортировало, то вот. Если же ты хочешь заходить в триггер и таким образом телепортироваться, нужен другой ивент.
 
Сам код

 

Спасибо, буду экспериментировать.


Однажды в правильном месте наступит нужный час.


#158 Ссылка на это сообщение mr Jyggalag

mr Jyggalag
  • Ветеран

  • 609 сообщений
  •    

Отправлено

-


Сообщение отредактировал wdsaasdw: 09 октября 2017 - 15:01


#159 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

Нужен скрипт, который сможет определить, с какой высоты падает персонаж.

Пока остановил свой выбор на отслеживании AnimationEvent'ов (JumpFall и JumpDown), и вычислении разницы по Z координате между ними, но оно как-то не слишком стабильно работает, особенно от первого лица.

Сам скрипт пока такой. Спелл в конце для того, чтоб понять, прошло все правильно, или расчет был кривой. И от первого лица он как раз обычно "кривой".

Event OnAnimationEvent(ObjectReference akSource, string EventName)
    if (eventName == "JumpFall")
        Zpos1 = PlayerRef.GetPositionZ()
    elseif (eventName == "JumpDown")
        Zpos2 = PlayerRef.GetPositionZ()
        Zpos3 = math.abs (Zpos1 - Zpos2)
        if (Zpos3 > 250)
            LandingSpell.Cast(PlayerRef, PlayerRef)        
        endif
    endif
endEVENT

Есть у кого-нибудь идеи, как это более стабильно можно делать? Скай урон от падения же очень быстро считает.


Сообщение отредактировал Azazellz: 09 октября 2017 - 13:52


#160 Ссылка на это сообщение mr Jyggalag

mr Jyggalag
  • Ветеран

  • 609 сообщений
  •    

Отправлено

Вопрос - как сделать так, чтобы после определённого этапа квеста должен "выключаться" определённый объект?



#161 Ссылка на это сообщение tobikun2510

tobikun2510
  • Новенький
  • 7 сообщений

Отправлено

Привет.)
1)Пожалуйста сделайте скрипт который запрещает вампирам лечиться от еды, зелий и магии исцеления(любой кроме некромантского лечения и лечения нежити).
2)И еще один скрипт для безшумных убийств укусом.Типа скрытно подходишь нажимаешь "E" на врага а там меню "Убить" "Питаться" "Украсть".
3)Скрипт на дикую регенерацию здоровья от вампирского укуса("Убить" и "Питаться")
4)Скрипт отравления от чеснока Х урона в течений 60 секунд.И дикий дебаф на регенерацию здоровья в процентах эти 60 секунд.
5)Скрипт отравления серебром Х урона пока серебряное оружие в руке.И так же дикий дебаф на регенерацию здоровья в процентах пока оружие в руке.
Скажите регенерация может быть отрицательной во время игры?
Если поставить -5000% регенерацию здоровья то во время игры персонаж умрет?Я думаю что регенерация во время игры отрицательной быть не может.Он просто будет нулевым.Но это только догадки.)





Темы с аналогичным тегами papyrus, help, скрипты, вопросы

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых