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

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



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




JupiterJour  Offline  Сообщение №1441 написано: 20 марта 2015, 21:28


_


Цитата Филя12

GetDeadCount


Я тут накатал было один способ без этой функции, но потом сообразил, что он имеет тот же недостаток, что и с ней: кто бы ни убил когтя, счётчик увеличивается. Хоть и немногие помимо игрока на это способны, но всё же.

LonelyTraveler  Offline  Сообщение №1442 написано: 20 марта 2015, 22:05 | Отредактировано: LonelyTraveler - 20 марта 2015, 22:06



35
Пожалуйста! Помогите склепать такую задачу, по идее не слишком сложна должна быть.

Берется 1 активатор в виде консольной панели, который будет выводить сообщение (разное); 1 активатор рычаг; 5 активаторов переключателей (те, что с красной(выкл) и зелёной(вкл) лампочкой и 1 терминал.

Суть квеста - нужно настроить соотношение давления газа.
Нажав на консольной панели нам показывает сообщение (начальный статус) -  [0:100]

Рядом с терминалом прикреплены 5 переключателей. Каждый из них обозначает свою скрытую цифру.
первый переключатель - это 1; второй - это 2; третий - это 4; четвертый - это 8; пятый - это 16.
В терминале следующее сообщение: [Числовой множитель], открыв его выводятся числа: 1, 2, 3, 4.

Нажав на первый переключатель (1), посмотрим на консоль, оно выдаст сообщение [1:99]
Если нажать на первый(1) переключатель и на третий(4), а потом посмотреть на консоль, она выдаст сообщение [5:95]. (потому что включены переключатели один(1) и три(4): 1+4=5)
Если не меняя включенные переключатели, открыть терминал, можно выбрать множитель - например 3. Теперь сумма всех переключателей умножается на 3. Переключатель один(1) и три(4) будут выводить сообщение у консоли (1+4=5*3=15) - [15:85]
Если включить все переключатели, и выставить множитель 4, то сообщение будет [100:0], (вместо 124:0, так как 100 это максимальное должно быть).

Задача: уравновесить давление - нужно [50:50]. Это переключатель один(1), четыре(8) и 5(16) (1+8+16=25) и в терминале ставим множитель на 2, (25*2=50).
Теперь поворачиваем рычаг, и открывается большая железная дверь.
Ах да, если выставлено любое другое соотношение, кроме как 50:50, то при повороте рычага происходит взрыв с последующей смертью ГГ.

Такая вот идея.
Огромное спасибо, если поможете воплотить её в фоллыч.

Филя12  Offline  Сообщение №1443 написано: 21 марта 2015, 04:03 | Отредактировано: Филя12 - 21 марта 2015, 04:06



11
>>кто бы ни убил когтя, счётчик увеличивается.
А увеличивается даже если пишешь плэйера - Player.GetDeadCount ?
А все таки как же можно сделать так чтоб при убийстве 20 разных когтей с разным ИД появлялся мессадж? Есть какие сособы? может какие другие команды есть которые можно прописать?

вам наверное этот вопрос несложный

а в gekk нету готового скрипт где это сделано?

>>"Помирить" ты их никак не сможешь, если функция не работает со списками, то она не работает не чуть-чуть а насовсем..
Спасибо за ответ. Жаль значит нужно другой спосб искать

КсюXa  Offline  Сообщение №1444 написано: 21 марта 2015, 05:55 | Отредактировано: КсюXa - 21 марта 2015, 18:35


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


Цитата Joopeeter

Хоть и немногие помимо игрока на это способны


Яо-гай, например. У меня вот перк "Друг животных" - так эти мишки гамми мне всегда на помощь приходят.

Ой, всё...
Ipatow  Offline  Сообщение №1445 написано: 21 марта 2015, 11:10



Цитата Филя12

А все таки как же можно сделать так чтоб при убийстве 20 разных когтей с разным ИД появлялся мессадж?

Допустим, я сделаю мод, который добавит в игру новый вид существ по имени "Клошка". Совершенно новое существо. Будет водиться повсеместно и питаться кем попало. Для создания этого существа использую модели-текстуры оригинальных когтей, анимации когтей, все параметры сделаю как у когтей. И для оригинальной игры, и для модов - для всех кроме игрока - это новое существо совершенно не коготь и никакого отношения к когтям не имеет, и поэтому, разумеется, никакая считалка когтей ни за что не согласится убийство этих "клошек" считать убийством когтей. А вот игрок с первого взгляда скажет - это ж коготь! Называется не так, но я же вижу!

Поэтому ответ на твой вопрос категорически отрицательный: никакой мод не сможет считать разных когтей.

Теперь вернёмся к твоей идее списка блюдей когтей. Чтобы не портить базовые объекты и не конфликтовать с другими модами, перво-наперво берём AddSpell и прицепляем на каждого базового когтя из списка свой Actor Effect со скриптовым Base Effect внутри. А скрипт этого эффекта висит ждёт пока носитель эффекта не помрёт, после чего смотрит "IsKiller Player", и если смертельный удар был нанесён ГГ - плюсует какую-то там глобальную переменную. Тот же квестовый скрипт, который поначалу развешивал эффекты, в основное время сидит и ждёт, чтобы та глобальная переменная стала кратна 20, а чуть ой выдаёт сообщение "Наш пострел уже мастер маникюра N-го разряда!"

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

JupiterJour  Offline  Сообщение №1446 написано: 21 марта 2015, 11:30


_


Цитата Ipatow

IsKiller


Пора мне возобновить ежедневное перечитывание списка функций. Про IsKiller забыл :(

Ipatow  Offline  Сообщение №1447 написано: 21 марта 2015, 11:47



Цитата Joopeeter

ежедневное перечитывание списка функций

Ещё GetCauseOfDeath есть! Правда, будет трудно доказать, что метнул барана (если причина смерти - попадание бараном по лбу) именно ГГ... Пусть считается самоубийством (cf.: suicide by drawing on a cop :D )

JupiterJour  Offline  Сообщение №1448 написано: 21 марта 2015, 11:59 | Отредактировано: Joopeeter - 21 марта 2015, 12:01


_


Про GetCauseOfDeath я не забуду, потому что успел хорошенько побиться об неё головой. Потом понял, что она на самом деле толком не работает - то покажет 0 на зашибленном бараном, то -1 на мёртвом, то ещё что-нибудь несуразное...

КсюXa  Offline  Сообщение №1449 написано: 21 марта 2015, 14:19


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


Цитата Ipatow

по имени "Клошка"


ми-ми-ми...
Клошка - это от Claw? Коготочек?

Ой, всё...
Филя12  Offline  Сообщение №1450 написано: 21 марта 2015, 17:37 | Отредактировано: Филя12 - 21 марта 2015, 17:53



11
>>Может и Когтей так же отслеживать?
Спасибо за ответ. Интересно, разбирался - там скрипит сидит на самом репеленте и выходит ты репелентом при убийстве считаешь. Так? а мне надо любым оружием: кулак репелент или гранатомет - неважно.

>>перво-наперво берём AddSpell и прицепляем на каждого базового когтя из списка свой Actor Effect со скриптовым Base Effect внутри.
>>Тот же квестовый скрипт, который поначалу развешивал эффекты,
А как это сделать через скрипт квеста? чего то я не понял - пишу CrDeathClaw.addspell ClawSpell  И ничего опять не сохраняется. пишет invalid reference "CrDeathClaw" (only object reference and reference veriables are allowed in this context) CrDeathClaw это ж ведь же базовый коготь? и писал CrDeathClawList.addspell ClawSpell список тоже не сохраняется.
как цеплять актор эффект скриптом квеста?

>>плюсует какую-то там глобальную переменную
это еще за что такое? unsure как ее делать?

спасибо за ответы!

КсюXa  Offline  Сообщение №1451 написано: 21 марта 2015, 18:18 | Отредактировано: КсюXa - 22 марта 2015, 14:36


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


Цитата Филя12

>>плюсует какую-то там глобальную переменную
это еще за что такое?


Ннуууууууу... Глобальная переменная - это такая же переменная, как и в скриптах, только для её объявления в ГЕКК есть отдельный раздел Globals. И к глобальной переменной (variables по-английски, а не veriables) любой скрипт (хоть полный, хоть результ-скрипт стадии квеста или топика) может обратится напрямую. Т.е. - не надо указывать к какому скрипту относится эта переменная, что значительно упрощает жизнь мододелу.

Ой, всё...
Филя12  Offline  Сообщение №1452 написано: 21 марта 2015, 19:37



11
>>Значит ошибка в ClawSpell
>>А перед этим создал этот самый ClawSpell? 
Я пока сделал его как актор эффект у болотника (водяное дыхание) MirklurkWaterBreathing но через addspell он не ставится базовому когтю никак. пробовал еще и прямо его ставить CrDeathClaw.addspell MirklurkWaterBreathing - то же не ставится и ту же ошибку показывает 
а MirklurkWaterBreathing он у блотника стоит значит должен ставится. я только не пойму почему тогда когтю он не ставится скриптово, через addspell? вы же пишите что базовому спелл можно дать?

>>в ГЕКК есть отдельный раздел Globals
Спасибо теперь понял.
Я раньше этот раздел видел только не знал зачем он нужен.

>>(variables по-английски, а не veriables)
А я по памяти с ошибки печатал. сам ошибся blush
не знаю как скрины тут выкладывать.

Ipatow  Offline  Сообщение №1453 написано: 21 марта 2015, 19:49



Цитата Филя12

не знаю как скрины тут выкладывать

Рекомендую использовать http://savepic.net/ - шустро, без мусора и даёт готовый BB-код для вставки в форумы...

КсюXa  Offline  Сообщение №1454 написано: 22 марта 2015, 05:38 | Отредактировано: КсюXa - 22 марта 2015, 05:41


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


Цитата Филя12

не знаю как скрины тут выкладывать.


Заходишь на сайт, ссылку на который тебе дал Ипатов, загружаешь туда нужную картинку (там всего две кнопки: Выберите файл и Отправить) После отправки откроется окно, в котором будут даны коды для вставки. Выбираешь код "превью с миниатюрой" (см. скриншот ниже), копируешь код и вставляешь в свое сообщение.


Цитаты здесь, на форуме: выделяешь в тексте пользователя тот фрагмент, который хочешь процитировать и жмешь под сообщением этого же пользователя кнопку "Цитата".

Ой, всё...
Филя12  Offline  Сообщение №1455 написано: 22 марта 2015, 09:27 | Отредактировано: Филя12 - 22 марта 2015, 09:38



11
Цитата КсюXa

Цитаты здесь, на форуме: выделяешь в тексте пользователя тот фрагмент, который хочешь процитировать и жмешь под сообщением этого же пользователя кнопку "Цитата".

Спасибо! Уже попробовал good

Добавлено (22 Марта 2015, 12:27)
---------------------------------------------
Еще забыл что на счет когтей написать: если скрипт-считалку из эффектов поставить на самих базовых когтей с Begin OnDeath, тогда все хорошо считается и все нормально. Но там на некоторых когтях уже другие скрипты стоят, как тогда быть? Не охота чтот лезть туда.

КсюXa  Offline  Сообщение №1456 написано: 22 марта 2015, 09:40 | Отредактировано: КсюXa - 22 марта 2015, 13:38


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


Цитата Филя12

скрипт эффекта:

scn DeathClawCuterScript

Begin GameMode

if IsKiller Player == 1
SET DeathClawCount TO DeathClawCount+1
endif

END


Вроде бы у эффектных скриптов надо писать не GameMode а ScriptEffectStart или как-то в этом роде.

Ой, всё...
Ipatow  Offline  Сообщение №1457 написано: 22 марта 2015, 09:52



Цитата КсюXa

Вроде бы у эффектных скриптов надо писать не GameMode а ScriptEffectStart или как-то в этом роде.

Ой, что-то и мне проснуться надо. В эффект-скрипте, конечно ScriptEffectUpdate нужен, а не гейммода blush

КсюXa  Offline  Сообщение №1458 написано: 22 марта 2015, 10:08 | Отредактировано: КсюXa - 22 марта 2015, 13:38


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


Цитата Ipatow

"Cuter" - это не просто "милый"


Вот что значит одна пропущенная буква :D

Ой, всё...
JupiterJour  Offline  Сообщение №1459 написано: 22 марта 2015, 10:24


_


Цитата КсюXa

Для чего объявлена переменная и что она делает?


Одноразовость же!
В отличие от
Код
IF DeathClawCount >= 20  
SHOWMESSAGE DeathClawCountMess  
ENDIF

Чтобы игрок не забыл, какой он замечательный молодец.

КсюXa  Offline  Сообщение №1460 написано: 22 марта 2015, 10:36 | Отредактировано: КсюXa - 22 марта 2015, 13:58


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


Цитата Joopeeter

В отличие от
Код
IF DeathClawCount >= 20
SHOWMESSAGE DeathClawCountMess
ENDIF

Чтобы игрок не забыл, какой он замечательный молодец.



В отличии от...  Классно указал на ошибку, которую все пропустили  ;)
Действительно, тут же нет одноразовости и месседж будет вылезать постоянно.

Ой, всё...
Филя12  Offline  Сообщение №1461 написано: 22 марта 2015, 14:35 | Отредактировано: Филя12 - 22 марта 2015, 15:45



11
Цитата Joopeeter

Чтобы игрок не забыл, какой он замечательный молодец.


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

Я пока этот скрипт сделаю и так уже мастером по подстриганию когтей стану - без всякого мессаджа ok

Ipatow  Offline  Сообщение №1462 написано: 22 марта 2015, 14:59



Цитата Филя12

если в актор-эффекте то после того как забью одного зверя сразу получаю мастера. что-то тут не то unsure

Однократно проверяй. Заверни с таким же DoOnce, как заворачивал AddSpell, иначе работает: таак... я умер.. меня убил ГГ.. звезду графу Суворову! таак.. я всё ещё мёртв.. убийца всё ещё ГГ.. звезду графу Суворову! таак... я всё ещё мёртв...

JupiterJour  Offline  Сообщение №1463 написано: 22 марта 2015, 16:03


_


Цитата Филя12

Я пока этот скрипт сделаю и так уже мастером по подстриганию когтей стану


Есть же KillAll...

КсюXa  Offline  Сообщение №1464 написано: 22 марта 2015, 16:05


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


Цитата Joopeeter

Есть же KillAll...


Филя12, это в смысле - грохни всех оптом через консоль и не парься ;)

Ой, всё...
Филя12  Offline  Сообщение №1465 написано: 9 апреля 2015, 03:30 | Отредактировано: Филя12 - 22 марта 2015, 18:10



11
Цитата Joopeeter

Есть же KillAll...

Ха! Интересная весч - оказалось если писать в консоли KillAll Player то все убийства гг засчитываются. даже нигде не читал об таком, писали просто про чит KillAll и все.

жаль что раньше не знал, а то уже когтей штук 200 перебил пока скрипт проверял. такто дело веселее :)

Добавлено (09 Апреля 2015, 06:30)
---------------------------------------------
Привет! опять борьба! Не знаю даже как быть.

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

для оружия вроде есть ModWeaponHealthPerc, чем дольше эффект, тем сильнее оружие портится. Но как быть с минами и гранатами? чтобы не порились. их же не отремонтировать!

и еще - одетые вещи- бронька, шлемы. для них можно как-то сделать так чтобы постепенно портились от эффекта? вроде того как ModWeaponHealthPerc в эффекте скрипта работает, но для бронек.

На счет горения. Вот не знаю как отключить эффект горения когда гг или нпц в воде. есть Dispel для эффекта но как его так прикрутить чтобы снимался в воде? IsSwimming пробовал но чтото не работает unsure

REF target

Begin ScriptEffectUpdate

SET target TO GetSelf

IF target.IsSwimming
    target.Dispel FireGrenadeEffect
ENDIF

END
---
это мне для мода для Фаллаут 3 надо если что. Можете помочь?


q2werty  Offline  Сообщение №1466 написано: 27 апреля 2015, 12:01



107
Филя12
А разве getself применима в данном случае? Если, конечно я не ошибаюсь..
http://geck.bethsoft.com/index.php?title=GetSelf

Ipatow  Offline  Сообщение №1467 написано: 27 апреля 2015, 18:49



Цитата q2werty

разве getself применима в данном случае?

Да, она так работает.
На самом деле тут даже не нужен референс - пишем "если неприцельно IsSwimming, то неприцельно Dispel", и оно самонаведётся куда надо. Неловкий момент там в основном в том, что про ГГ IsSwimming не работает...

STELS_BOY  Offline  Сообщение №1468 написано: 23 мая 2015, 12:26



95
Как на ГГ одеть нужную одежду (которя уже в инветаре) например как в ДЛС Мертвые деньги ГГ появляется в комбинезоне уже одетом - в нашем ПОИСКЕ по форуму и так и сяк писал ни черта он не ищет.

tundruck73  Offline  Сообщение №1469 написано: 24 мая 2015, 06:15



player.equipitem id одежды.

Мосье, же не манж па сис жур...
Умер 23.04.2019
BsX  Offline  Сообщение №1470 написано: 29 июня 2015, 06:54 | Отредактировано: BsX - 29 июня 2015, 13:10


Полковник с парада


33
Как сделать лифт, как в убежище 22?

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





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