Модератор форума: КсюXa, ApeX  
Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)

Скрипты
a3apbi4  Offline  Сообщение №1 написано: 7 декабря 2010, 18:01



11
Скрипты - неотъемлемая часть GECK. При написании возникает очень много казусов. Данная тема должна помочь не наступать на "грабли" новичкам и делиться опытом с другими более продвинутых мододелов.




Ipatow  Offline  Сообщение №1501 написано: 6 августа 2015, 16:39



Цитата EngineeringGuy

если сделать как в этом моде: выкинул - активировал - мессаг с опциями: поднять, открыть, оставить

"Мессаг с опциями" - это архаизм тех же обливионовских времён, что приседание для изменения режима активации. В фолаутах есть прекрасно работающая система многовариантной активации... Да, можно сделать и как в том моде, и ещё много как, но главное что это не обойдётся одним скриптом на рюкзаке. А когда обслуживаемый модом рюкзак не уникален, мод и вовсе становится нешуточно сложным...

asdas991  Offline  Сообщение №1502 написано: 26 августа 2015, 11:24 | Отредактировано: asdas991 - 26 августа 2015, 11:26



18
Товарищи! Можете мне помочь: я в скриптах разбираюсь только на интуитивном уровне и потому не знаю каких либо модификаторов и команд. Я пробовал потрошить некоторые моды на предмет похожих скриптов, но как видите, ничего в них не понял. И потому искренне прошу о помощи.

Что за скрипт:
На оружии сидит скрипт, который срабатывает при ударе по трупу. Скрипт проверяет у игрока наличие перка X, наличие > 0 предмета Y и экипированно ли наше оружие. Если все верно, то выскакивает сообщение с неким текстом, предмет Y в количестве 1шт удаляется из инвентаря, труп убирается, спавнится NPС Z.

Если кто - нибудь может мне чем - нибудь помочь, то я буду очень признателен.

ITU  Offline  Сообщение №1503 написано: 26 августа 2015, 12:07



995
asdas991, если вешать скрипт на труп, а не на оружие, то могу помочь.
при ударе по трупу, определяет какое оружие одето, и собственно тоже самое будет.

asdas991  Offline  Сообщение №1504 написано: 26 августа 2015, 12:11



18
Цитата ITU

asdas991, если вешать скрипт на труп, а не на оружие, то могу помочь. при ударе по трупу, определяет какое оружие одето, и собственно тоже самое будет.

Спасибо! Только один момент: труп только людской.

ITU  Offline  Сообщение №1505 написано: 26 августа 2015, 14:05 | Отредактировано: ITU - 26 августа 2015, 14:10



995
Цитата asdas991

Спасибо! Только один момент: труп только людской.

Ну на кого повесишь...
Если тебе нужен именно любой труп, как для перка? Тогда надо подумать...
И определение одетого оружие это NVSE Script
Код
scn aaatrupaksriptname

ref Weapon

begin OnFire player

set Weapon to player.GetEquippedObject 5

if (Weapon == MyWeaponID) && (Player.HasPerk MyPerkID_X == 1) && (Player.GetItemCount MyItemID_Y >= 1)     

player.RemoveItem MyItemID_Y 1
disable
placeatme MyNPCID_Z
MarkForDelete

endif

end
Возможно и для оружия придумаю, только вот сайт с описанием скриптов не работает,а я на память не помню все

Добавлено (26 Августа 2015, 17:05)
---------------------------------------------
Нету не у кого скачанного http://geck.bethsoft.com ?
А то он больше не работает ((

КсюXa  Offline  Сообщение №1506 написано: 26 августа 2015, 14:06 | Отредактировано: КсюXa - 26 августа 2015, 14:11


Гид по Мастерской


Цитата ITU

Нету не у кого скачанного http://geck.bethsoft.com

Сайт что ли?? Вроде работает, как и прежде

Ой, всё...
ITU  Offline  Сообщение №1507 написано: 26 августа 2015, 14:12



995
Цитата КсюXa

Сайт что ли?? Вроде работает, как и прежде

У меня не работает при переходе на любую ссылку и уже вроде с анонсом фолла 4 не работает... 
я думал его обновлять будут уже для нового гекка...

asdas991  Offline  Сообщение №1508 написано: 26 августа 2015, 18:56 | Отредактировано: asdas991 - 26 августа 2015, 19:04



18
Цитата ITU

Ну на кого повесишь... Если тебе нужен именно любой труп, как для перка? Тогда надо подумать...
И определение одетого оружие это NVSE Script

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

P.S. Я тебя добавлю как соавтора мода  ok

ITU  Offline  Сообщение №1509 написано: 26 августа 2015, 19:33



995
Цитата asdas991

P.S. Я тебя добавлю как соавтора мода

как соавтора не надо)

asdas991  Offline  Сообщение №1510 написано: 26 августа 2015, 19:35



18
Цитата ITU

как соавтора не надо)

Но благодарность все равно впишу )

djsave  Offline  Сообщение №1511 написано: 13 сентября 2015, 12:46


=TMG= TeamModingGames


505
Приветствую всех. Возникла тут заминка со скриптом, может кто сможет помочь.  
Как это будет выглядеть в игре: 
ГГ берет в руки большой тесак, вокруг него в небольшом радиусе на кустарниках и около деревьев появляются цветные маркеры, ударив по этому маркеру в инвентарь к ГГ добавляется либо копье либо дрова. Радиус небольшой, около нескольких метров, убрав тесак маркеры перестают отображаться. 
Как это выглядит с другой стороны: 
Я вижу это так - маркеры расставлены там где надо. Индивидуальных имен у них нет, слишком много их. Когда у ГГ в руках оружие то работает скрипт на оружии который и активирует появление этих маркеров. как то так. 
Вариант отслеживания маркером самого ГГ сс оружием в руках - не вариант(маркеров очень много и работающий скрипт на каждом это попа). 
Есть предложения ?

=TMG= Team Moding Games
Ipatow  Offline  Сообщение №1512 написано: 13 сентября 2015, 12:54 | Отредактировано: Ipatow - 13 сентября 2015, 13:07



Цитата djsave

маркеров очень много и работающий скрипт на каждом это попа

А Enable Parent на них это какая часть тела? unsure

Добавлено:
Хотя нет, их же не в маленьком радиусе много, сокращение числа маркеров в десяток раз не решит проблему. А изредка сканировать в массив и часто проявлять находящиеся в радиусе сбора?

И не скрипт на оружии, наверное. Оружейный энчант не на носителя оружия действует - поэтому квестовый скрипт, который сканирует, сначала проверяет наличие нужного оружия в руках ГГ.

djsave  Offline  Сообщение №1513 написано: 14 сентября 2015, 16:32


=TMG= TeamModingGames


505
Мдя, как обычно лес рук.... Немного покурив мануалы дал ходу больному воображению. Поскольку мне никак в голову не пришло ничего кроме как  повесить скрипт на каждый маркер, это и сделал. Пока все это дело в работе, скрипт упрощен дальше аж некуда и мне кажется что должно быть все пучком, я понимаю что это не лучший вариант, но пока другого не придумал.


Данный скрипт вещается на активатор и создается один форм лист в котором оружие, именно то что нам нужно и именно на него и будет реагировать активатор. Активатор по умолчанию отключен, когда наш ГГ приблизится к нему на некоторое расстояние то он станет видимым(Енэблится) если в руках у ГГ оружие указанное в форм листе. Когда ГГ начнет долбить по активатору (у меня это армейский тесак) сработает счетчик и после 10 ударов в инвентарь к ГГ будут добавлены дрова(можно прописать что угодно), далее активатор дисэйблится(соответственно становится невидимым) и скриптово разрушается, после этого он перестает работать. Спустя время - это время ресета в игре, по умолчанию 3 игровых дня, маркер восстанавливается и его можно снова обнаружить и т д.

Код
scn TMGTreeResursMarkerScr

int iState

begin GameMode
   if iState == 0            
    if GetDistance player <= 350 && player.IsWeaponInList WeaponForDrovosek
       Enable
    else  
        Disable
     endif    
   endif     
END  

Begin OnHit  
     set iState to iState + 1
    if iState == 10   
        PlaySound UILevelUp
         Disable    
         set iState to 1      
       setdestroyed 1
       player.AddItem CBHvorost 1  
    endif    
END

begin onReset
    setdestroyed 0
    set iState to 0  
end


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

=TMG= Team Moding Games
JupiterJour  Offline  Сообщение №1514 написано: 14 сентября 2015, 19:55


_


Цитата djsave

повесить скрипт на каждый маркер


Да ещё с "тяжёлым" GetDistance'ом... Не могу смотреть на это молча :)
Пожалуй, тот случай, когда экстендер в жилу - "сканирует и проверяет" как бишь его... GetFirstRef, GetNextRef... Ну, Ипатов лучше объяснит.
Я б ещё маркер сделал бы живым. В смысле животным, только в виде маркера. SetRestrained 1 его на всякий случай и руби-пили сколько влезет. И прогресс рубки виден, и здоровье маркера само убывает, и топор изнашивается, и респаунятся дрова самостоятельно, и бензопилой быстрее чем ножичком получится без дополнительных скриптовых ухищрений. И карму можно снять за занесённые в Красную книгу виды.

Ipatow  Offline  Сообщение №1515 написано: 14 сентября 2015, 21:27



Цитата Joopeeter

Я б ещё маркер сделал бы живым

Не будет защиты от коврового бомбометания... Которое не только всю рощу разом на дрова разбирает, так недобитые дрова ещё и разлетятся по ближним оврагам unsure

JupiterJour  Offline  Сообщение №1516 написано: 14 сентября 2015, 23:27


_


Цитата Ipatow

недобитые дрова ещё и разлетятся


Недобитое животное-турель, например, никуда не разлетается, стоит где поставили. Пусть маркеры берут пример с него, а не с вороны какой-нибудь.
Даже если маркер всё ж будет активатором, подсчёт ударов, я считаю, лучше всё равно перенести в Destruction Data. Чтобы всё-таки трудоёмкость пиления бензопилой и выкидухой различалась - реализм, чтоб его...

Интересно, что будет в форм-листе?
http://www.youtube.com/watch?t=1&v=4sV1xamWcgQ

Добавлено (15 Сентября 2015, 02:27)
---------------------------------------------
И кстати, вроде OnHit в Вегасе на оружие вешается unsure


q2werty  Offline  Сообщение №1517 написано: 15 сентября 2015, 12:02



107
Приветствую, народ!

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

Цель - поменять прическу на указанную не спрашивая мнения игрока. Грубо говоря, попал ГГ в тюрьму - побрили налысо.
С НПС как это делать ясно, но вот как с ГГ без перезагрузки игры?

ITU  Offline  Сообщение №1518 написано: 15 сентября 2015, 12:20 | Отредактировано: ITU - 15 сентября 2015, 12:21



995
q2werty, могу предложить вариант прическу переделать в парик (шапку)
Единственно цвет волос будет тот, который поставишь текстурой...
А налысо по идеи можно без модели вообще

q2werty  Offline  Сообщение №1519 написано: 15 сентября 2015, 12:23



107
Ай, все... Извиняюсь..
Вопрос снимается - разобрался..

Добавлено (15 Сентября 2015, 15:23)
---------------------------------------------
ITU, Не.. все оказалось гораздо проще..
Но,спасибо!


КсюXa  Offline  Сообщение №1520 написано: 16 сентября 2015, 03:00


Гид по Мастерской


Цитата q2werty

попал ГГ в тюрьму - побрили налысо.


налысо - вообще не проблема. Дал игроку безмодельную броню\одежду со слотом Hair - побрил наголо.

Ой, всё...
djsave  Offline  Сообщение №1521 написано: 18 сентября 2015, 16:05


=TMG= TeamModingGames


505
Цитата Joopeeter

Я б ещё маркер сделал бы живым. В смысле животным, только в виде маркера.


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

=TMG= Team Moding Games
Xilandro  Offline  Сообщение №1522 написано: 19 сентября 2015, 15:50 | Отредактировано: Xilandro - 19 сентября 2015, 15:56



33
Делать маркеры живыми это крутой вариант, но нужно лупом проходить по ячейкам и SetRestrained 1 делать, а то живые маркеры\деревья будут вертеться, "смотреть" вокруг. Может даже бегать по локе, если завтыкать и не выставить "без ног\без рук\без головы".

А вообще лучший вариант просто заменить деревья активаторами-триггерами с destruction data и простым скриптом:

Код
int iStage
int iPlayer

Begin OnTriggerEnter Player
         set iPlayer to 1
         set iStage to GetDestructionStage  
End

Begin OnTriggerLeave Player
         set iPlayer to 0
End

Begin OnDestructionStageChange
         if iPlayer == 1
             if iStage < GetDestructionStage  
                       Player.AddItem Brevno01 1
                       set iStage to GetDestructionStage  
             endif
         else
                PlaceAtMe Brevno01 ;можно еще рандомно Х и Y выставить
         endif
End

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

DestructionStage'ей можно выставить огромное количество (и тут я сп***л, их всего 8) + заменять модельку каждый раз когда меняется стейдж.
Из плюсов - работает надежно. Скрипт запускается только когда игрок влезает в триггер или меняется стейдж.

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

upd: подправил скрипт, а то допустил серьезную ошибку

Evaluate, adapt, destroy
djsave  Offline  Сообщение №1523 написано: 19 сентября 2015, 17:49


=TMG= TeamModingGames


505
Я решил пока остановиться на своем варианте. Десяток маркеров на локе у меня не вызывают изменения ФПС. Поскольку маркеров будет не очень много то думаю прокатит. Изменение модели мне не нужно. Как допилю до конца то выложу видео получившегося. При первых тестах все пучком, дальше народ протестит и скажет что и как.

=TMG= Team Moding Games
_KIRA_  Offline  Сообщение №1524 написано: 20 сентября 2015, 09:45



3
Нужна помощь! Делаю что-то вроде своего убежища, хотел привязать пульт управления дверью убежища к самой двери, все сделал по указаниям Графа

 

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

Xilandro  Offline  Сообщение №1525 написано: 20 сентября 2015, 10:51



33
_KIRA_, скинь есп, попытаюсь помочь.

Evaluate, adapt, destroy
JupiterJour  Offline  Сообщение №1526 написано: 20 сентября 2015, 12:06 | Отредактировано: Joopeeter - 20 сентября 2015, 12:08


_


Цитата _KIRA_

Сделал все как сказано, но когда пытаюсь привязать пульт к двери в Linked Ref там нет двери.


Это потому что там не сказано, что копию двери надо назначить постоянной ссылкой.

Добавлено (20 Сентября 2015, 15:06)
---------------------------------------------
И объекты не надо плодить без нужды. Если не меняешь ни модель двери, ни другие её свойства, ни скрипт, то и дублировать её не нужно. Если не меняешь ни модель дверной открвалки, ни другие её свойства, ни скрипт (а скрипт а скрипт ты не меняешь - это стандартный GenericControlPodScript, только под другим названием), то и её дублировать тоже не нужно.

Xilandro  Offline  Сообщение №1527 написано: 20 сентября 2015, 13:41



33
Цитата Joopeeter

тут палка о двух концах - триггер тоже жрёт ресурс, не знаю правда, больше ли скриптового обшаривателя-измерителя, меньше ли

меряли луп и старый типа label и новомодный (очень кстати плохой) while. Это ад. Особенно если еще какие-то лупы инициированы (в других модах). Foreach по локациям вообще убийца фпс'а, его только для array (массив вроде, я хз как по нашему правильно). Можно конечно раз в 5 секунд пробегать лупом (label'ом) на дистанцию в одну ячейку, но ну его в баню. Кругом столько модов с лупами что быть тем самым человеком который доломал своим лупом и так шаткую систему - неее))
А с триггерами проблем практически нет. Спавнили около тысячки триггеров в одну ячейку (без gamemode, только ontriggerenter\leave) и бегали вокруг. Лагало адски из-за количества активных объектов, но просадка фпса не менялась при срабатывании онтриггер блоков, с чего сделали вывод "можно юзать". Около сотки триггеров ведут себя так же как сотня обычных объектов.
С живыми маркерами есть 3 основных проблемы. 1) на них толком не повесить скрипт. 2) Они живые, а значит есть вероятность что игра протупит, начнут агриться\бегать по локе\дохнуть\глючить. 3) Они живые#2, игра работает с существами иначе чем с объектами, на них тратится больше ресурсов. Переизбыток существ и акторов в ячейке неизбежно посадит кадры. И вот это уже интересней. Я на недельке поэкспериментирую. Может отсутствие ИИ-пакетов уберет лаги. В таком случае первые 2 минуса можно как-то да обойти, получится очень круто. Масса вещей есть где трюк такой можно провернуть вместо тяжелых лупов. Было б круто.

Evaluate, adapt, destroy
_KIRA_  Offline  Сообщение №1528 написано: 21 сентября 2015, 12:14



3
Xilandro, Дай свой вк, туда и скину)

КсюXa  Offline  Сообщение №1529 написано: 22 сентября 2015, 03:07 | Отредактировано: КсюXa - 22 сентября 2015, 03:34


Гид по Мастерской


_KIRA_, так вроде Юпитер вполне определил проблему:
Цитата Joopeeter

Это потому что там не сказано, что копию двери надо назначить постоянной ссылкой.


Другой причины я тоже не вижу. Кстати, там же, у Юпитера в посте, есть дельный совет по размещению объектов ;)
ЗЫ. назначить постоянной ссылкой - это значит, что у копии двери (той, что на локации) нужно отметить чек-бокс "Persistent Reference".

Ой, всё...
_KIRA_  Offline  Сообщение №1530 написано: 25 сентября 2015, 12:15



3
КсюXa, спасибо! И тебе и Юпитеру очень благодарен)
Теперь немного такая проблема: сделал все как нужно, назначил постоянную ссылку, теперь не могу нажать на пульт управления дверью, в игре он просто стоит, никак нельзя активировать, будь то он обычная текстура

Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)
Поиск:





Ответ на жалобу смотрите в разделе жалоб