По описанию трудно понять в чём проблема. Скрипт простейший, по идее ни с какими другими не должен пересекаться. Скопируй сюда тот второй скрипт, может с ним какая-то проблема.
Помощь по скриптам Fallout 3 и Fallout: New Vegas
Сообщений 181 страница 210 из 350
Поделиться18227.04.11 15:41:14
По описанию трудно понять в чём проблема. Скрипт простейший, по идее ни с какими другими не должен пересекаться. Скопируй сюда тот второй скрипт, может с ним какая-то проблема.
scn aaaQUEST1triggernpcenableScript
Begin OnTriggerEnter
npckillRef.enable
disable
End
Я могу есп файл кинуть вам в личку, может увидете где моя ошибка, скинуть ?
Отредактировано Серёга (27.04.11 15:47:18)
Поделиться18327.04.11 18:56:48
Я так понимаю, disable в скрипте нужен чтобы он сработал единожды? Тогда лучше так:
scn aaaQUEST1triggernpcenableScript short sDoOnce Begin OnTriggerEnter player if (sDoOnce == 0) npckillRef.enable Set sDoOnce to 1 endif End
Поделиться18429.04.11 02:12:54
Здраствуйте, у меня есть рабочий скрипт, но он не выполняет назначение, что может быть не так ? Скрипт:
scn aaaGrafaModScript
short needequip
short buttonbegin OnEquip
if MenuMode
ShowMessage AAAGrafaEffectMessage
endif
endBegin MenuMode
if needequip
set Button to GetButtonPressed
if ( Button == 0 )
set needequip to 0
elseif ( Button == 1 )
set needequip to 0
player.EquipItem AAAGrafaEffect 1 1
removeme
endif
endif
end
Скрипт на объект, не эффект. Использовать хотел на объект из группы Ingestible (Помощь) но почему то скрипт не выполняет функции, почему ?
Отредактировано Серёга (29.04.11 13:10:24)
Поделиться18529.04.11 23:05:28
Всем здрасте.Написал вот такой скрипт для турели( не ржите это мой первый в жизни скрипт))) )
scn AaaMark3SCRIPT short wequip Begin GameMode if(Player.IsWeaponOut) Set wequip to 1 if(wequip == 1) Player.AddToFaction AaTurretEnemyFrac 1 endif endif End
Идея была в том, чтоб заставить турель атаковать гг если оружие в руках. Помогите )))
Отредактировано Никита (29.04.11 23:07:08)
Поделиться18601.05.11 13:12:16
Серёга, не вдаваясь в подробный анализ, просто первое что заметил:
if needequip это фактически то же самое что if (needequip == 1) (советую оформлять именно так, проще для восприятия). При этом needequip изначально присвоено значение 0 и весь блок MenuMode просто никак не может выполниться. Попробуй после ShowMessage AAAGrafaEffectMessage вставить строчку Set needequip to 1.
Никита, не понимаю для чего переменная wequip, ведь её применение по сути дублирует строчку if(Player.IsWeaponOut). Так же не хватает фрагмента делающего турель вновь дружественной при убирании оружия (если она уже начала атаковать ГГ, то дружественной не должна стать).
Примерно должно получиться что-то вроде:
scn AaaMark3SCRIPT Begin GameMode if (Player.IsWeaponOut == 1) Player.AddToFaction AaTurretEnemyFrac 1 elseif (Player.IsWeaponOut == 0) Player.RemoveFromFaction AaTurretEnemyFrac 1 endif End
Ну это примерно. Сейчас нет доступа к основному компу (сижу с ноута) и не могу подсмотреть скрипт в Ассасине.
Поделиться18701.05.11 14:42:40
MuxauJl, Попробую.
Поделиться18801.05.11 14:53:34
Все разобрался. Дело было в AI Data и пакетах AI. Вот так выглядит работающий скрипт
scn AaaMark3SCRIPT short Ahtung Begin GameMode if(Player.IsWeaponOut == 1) && (Ahtung == 0) ShowMessage AaECTurretMessage ;сообщение, что если гг не уберет оружие его атакуют Set Ahtung to 1 Player.AddToFaction AaTurretEnemyFrac 1 endif End
Большое спасибо что помогли.
Отредактировано Никита (01.05.11 18:01:59)
Поделиться18901.05.11 14:56:23
MuxauJl, Почему то Мессаг непоявляется.
Поделиться19016.05.11 20:14:38
Привет всем. В NV возникла необходимость возвращения метательного оружия в руку. Т.е. после падения на землю- попадания в цель, метательный девайс должен вернуться к ГГ, с возможностью немедленного повторного применения.
К оружию применён скрипт на подмену моделей
scn A13WeaponModeValenokFATChoiceScript
short A13Key
float A13WeaponCond
begin OnEquip player
if MenuMode 1002
ShowMessage 1ValenokFATMSG
endif
end
begin MenuMode 1002
set A13Key to GetButtonPressed
if A13Key < 1
return
elseif A13Key == 1
set A13WeaponCond to player.GetWeaponHealthPerc
player.AddItem 1WeapValenokF 1 1
player.EquipItem 1WeapValenokF 0 1
player.SetWeaponHealthPerc A13WeaponCond
removeme
elseif A13Key == 2
set A13WeaponCond to player.GetWeaponHealthPerc
player.AddItem 1WeapValenokM 1 1
player.EquipItem 1WeapValenokM 0 1
player.SetWeaponHealthPerc A13WeaponCond
removeme
elseif A13Key == 3
set A13WeaponCond to player.GetWeaponHealthPerc
player.AddItem 1WeapValenokT 1 1
player.EquipItem 1WeapValenokT 0 1
player.SetWeaponHealthPerc A13WeaponCond
removeme
endif
end
Было бы неплохо поместить новый блок в этот скрипт. Сама модель нуждающаяся в возвращении- 1WeapValenokT
Заранее спасибо.
Отредактировано fillimor (16.05.11 20:25:06)
Поделиться19116.05.11 22:12:13
Что значит вернуться? Просто появиться в инвентаре или с возможностью подбора с земли?
Поделиться19216.05.11 23:07:41
Появиться в инвентаре. Экипированным. Готовым к применению.
Поделиться19319.05.11 02:27:10
filimor, А не легче сделать просто бесконечные пули (метательные объекты) ?
Здраствуйте, а как с помощью скрипта сделать так чтобы с помощью активатора активировалась (взрывалась) граната или мина ?
Отредактировано Серёга (19.05.11 02:34:22)
Поделиться19419.05.11 14:08:40
как с помощью скрипта сделать так чтобы с помощью активатора активировалась (взрывалась) граната или мина ?
Мина
Думаю, самым простым способом будет создание локального взрыва рядом с миной. Для этого пригодятся:
- взрыв небольшого размера (находится по адресу: Special Effects/Explosion). Проверить радиус взрыва можно через Preview Window;
- Ref-ссылка (Ref-имя) на мину (Например: IamAVeryGoodMineHaHaREF);
- функция вида "RefИмяМины.PlaceAtMe ИмяВзрыва 1";
- скрипт, в который и будет записана эта команда.
Но вообще решение зависит от конкретной ситуации. Опишите подробнее, как все должно происходить.
Граната
Здесь сразу вопрос: что именно требуется? Взрыв брошенной гранаты в воздухе? Или подрыв растяжки?
Поделиться19519.05.11 16:53:04
- взрыв небольшого размера (находится по адресу: Special Effects/Explosion). Проверить радиус взрыва можно через Preview Window;
Но ведь взрыв из Explosion не переносится в мир, а мне нужен именно оттуда (свой взрыв) сделать в определённом месте после нажатия на активатор. А поскольку один взрыв не переносится, то я его хотел поцепить на гранату и взорвать скриптом.
Отредактировано Серёга (19.05.11 17:01:03)
Поделиться19619.05.11 22:16:16
Серёга,
А не легче сделать просто бесконечные пули (метательные объекты) ?
каким образом?
Поделиться19719.05.11 23:14:08
fillimor, Там вроде есть такая функция, галочку только надо поставить. Но чтобы это сделать надо настраивать само оружее. Я когда делал мод Assault_Rifle_LCU_GP сталкивался с бесконечными пулями. Нужно просто эксперементировать.
Поделиться19819.05.11 23:36:04
Но ведь взрыв из Explosion не переносится в мир
Да, не переносится, но в вашем случае это вообще не нужно. И расставлять мины/гранаты в мире игры тоже не нужно. В предыдущем сообщения я упоминал функцию "PlaceAtMe". Собственно, она и позволят создать взрыв. Что мы делаем:
- переносим в мир игры объект "XMarker" (раздел Static) на то место, где планируем учинить подрыв;
- даем этому маркеру Ref-имя (например: aaaModTecAwesomeExplosionREF);
- вешаем нижеследующий скрипт на ваш активатор (или добавляем нужные строки):
scn aaaModTecAwesomeExplosionSCRIPT short DoOnce Begin OnActivate Player if (DoOnce == 0) Activate aaaModTecAwesomeExplosionREF.PlaceAtMe MediumExplosion 1 set DoOnce to 1 endif End
Данный скрипт сработает один только один раз из-за условия "if (DoOnce == 0)".
Вот и все.
Поделиться19919.05.11 23:42:18
Sergey_Ros, Спасибо попробую. Это как раз то что мне нужно.
Поделиться20020.05.11 21:35:37
Народ, как этот скрипт переделать для брони ?
scn aaaRestoreHealth short HLTH begin onHit player set HLTH to GetActorValue health if HLTH > 0 RestoreActorValue Health 100 elseif HLTH <= 0 kill endif end
Поделиться20120.05.11 22:55:03
Серёга, больше подробностей, пожалуйста. Броню будет носить только ГГ или все?
Поделиться20220.05.11 23:54:49
Sergey_Ros, Да. Вобще этот скрипт мне нужен в трёх вариантах, первый это какой он есть, второй это когда он на броне чтобы как только "здоровье" брони падало до 0, NPC умирал, и третий вариант когда броня сразу приходила в негодность но NPC не умерал ?
Иными словами мне нужны два скрипта.
Если нет времени или не можете по каким то причинам написать такой скрипт. Пожалуйста, напишите в л.с.
Отредактировано Серёга (24.05.11 00:34:53)
Поделиться20325.05.11 21:32:10
Да, не переносится, но в вашем случае это вообще не нужно. И расставлять мины/гранаты в мире игры тоже не нужно. В предыдущем сообщения я упоминал функцию "PlaceAtMe". Собственно, она и позволят создать взрыв. Что мы делаем:- переносим в мир игры объект "XMarker" (раздел Static) на то место, где планируем учинить подрыв;- даем этому маркеру Ref-имя (например: aaaModTecAwesomeExplosionREF);- вешаем нижеследующий скрипт на ваш активатор (или добавляем нужные строки):Код:scn aaaModTecAwesomeExplosionSCRIPT
short DoOnce
Begin OnActivate Player
if (DoOnce == 0)
Activate
aaaModTecAwesomeExplosionREF.PlaceAtMe MediumExplosion 1
set DoOnce to 1
endif
EndДанный скрипт сработает один только один раз из-за условия "if (DoOnce == 0)".
А вот я изменил скрипт под свой квест:
short sFlag
float fTimer
short DoOnceBegin OnActivate
if (DoOnce == 0)
if (sFlag == 0)
Activate
Set sFlag to 1
DisablePlayerControls
Set fTimer to 5
set DoOnce to 1
endif
endif
End
Begin GameMode
if (fTimer > 0) && (sFlag == 1)
Set fTimer to (fTimer - GetSecondsPassed)
elseif (sFlag == 1)
BombExplosionMarkerRef.PlaceAtMe BombExplosion 1
SetStage QuestBomb 40
EnablePlayerControls
Set sFlag to 2
endif
End
Только мне нужно чтобы взрыв работал только через 2 секунды, я так понимаю это делается подругому через state ? Неподскажите как ?
Поделиться20429.05.11 09:25:46
Серёга, скрипт для третьего варианта -
scn aaaImmediateWeakeningArmor short HLTH begin onLoad set HLTH to GetHealthPercentage set HLTH to 0 end
Скрипт прицепить на броню.
Над вторым скриптом ещё думаю...
Поделиться20529.05.11 10:37:54
Rus-IP, Спасибо.
Поделиться20630.05.11 02:07:02
Здраствуйте, а можете подсказать скрипт, при котором например если в триггере 2 нпц умерли, то квест переходил на следующую стадию ? Или какой нибудь легче способ это сделать.
Поделиться20730.05.11 10:15:53
Серёга,
scn aaaNpcOnTrigger begin OnTrigger if (GetActionRef == nameNPC01) && (GetActionRef == nameNPC02) if (nameNPC01.getDead == 1) && (nameNPC02.getDead == 1) setStage QuestID IndexOfQuest endif endif end
Где:
"nameNPC01" и "nameNPC02" - Ref ID каждого из двух NPC
"QuestID" - ID квеста
"IndexOfQuest" - номер стадии, например "10"
Скрипт прицепить на триггер.
Отредактировано Rus-IP (30.05.11 10:17:11)
Поделиться20830.05.11 19:01:57
Rus-IP, Спасибо.
Поделиться20908.06.11 18:44:33
Здраствуйте. Я хочу сделать скрипт ядерного удара через обычный выключатель с красной и зелёной кнопкой но я незнаю как. Я неумею делать скрипты. Так же я незнаю что надо сделать чтобы ядерный взрыв был в локации которую я выбрал. В данном случае Форт Баннистер.
Поделиться21012.06.11 18:11:59
Добрый день всем. Прочитал вроде все, но ответа на свой вопрос не нашел. Как получить ID объекта в контейнере? Или, если объектов в контейнере несколько, организовать их перебор?