Форум «Лабортории Mod-Tec»

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум «Лабортории Mod-Tec» » G.E.C.K. Community » Помощь по скриптам Fallout 3 и Fallout: New Vegas


Помощь по скриптам Fallout 3 и Fallout: New Vegas

Сообщений 181 страница 210 из 350

181

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

0

182

MuxauJl написал(а):

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

scn aaaQUEST1triggernpcenableScript
Begin OnTriggerEnter
  npckillRef.enable
   disable
End

Я могу есп файл кинуть вам в личку, может увидете где моя ошибка, скинуть ?

Отредактировано Серёга (27.04.11 15:47:18)

0

183

Я так понимаю, disable в скрипте нужен чтобы он сработал единожды? Тогда лучше так:

Код:
scn aaaQUEST1triggernpcenableScript

short sDoOnce

Begin OnTriggerEnter player

if (sDoOnce == 0)
  npckillRef.enable
  Set sDoOnce to 1
endif

End

0

184

Здраствуйте, у меня есть рабочий скрипт, но он не выполняет назначение, что может быть не так ? Скрипт:

scn aaaGrafaModScript

short needequip
short button

begin OnEquip

if MenuMode
ShowMessage AAAGrafaEffectMessage
endif
end

Begin 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)

0

185

Всем здрасте.Написал вот такой скрипт для турели( не ржите это мой первый в жизни скрипт))) )

Код:
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)

0

186

Серёга, не вдаваясь в подробный анализ, просто первое что заметил:
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

Ну это примерно. Сейчас нет доступа к основному компу (сижу с ноута) и не могу подсмотреть скрипт в Ассасине.

0

187

MuxauJl, Попробую.

0

188

Все разобрался. Дело было в 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)

0

189

MuxauJl, Почему то Мессаг непоявляется.

0

190

Привет всем. В 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)

+1

191

Что значит вернуться? Просто появиться в инвентаре или с возможностью подбора с земли?

0

192

Появиться в инвентаре. Экипированным. Готовым к применению.

0

193

filimor, А не легче сделать просто бесконечные пули (метательные объекты) ?

Здраствуйте, а как с помощью скрипта сделать так чтобы с помощью активатора активировалась (взрывалась) граната или мина ?

Отредактировано Серёга (19.05.11 02:34:22)

0

194

Серёга написал(а):

как с помощью скрипта сделать так чтобы с помощью активатора активировалась (взрывалась) граната или мина ?

Мина
Думаю, самым простым способом будет создание локального взрыва рядом с миной. Для этого пригодятся:
- взрыв небольшого размера (находится по адресу: Special Effects/Explosion). Проверить радиус взрыва можно через Preview Window;
- Ref-ссылка (Ref-имя) на мину (Например: IamAVeryGoodMineHaHaREF);
- функция вида "RefИмяМины.PlaceAtMe ИмяВзрыва 1";
- скрипт, в который и будет записана эта команда.
Но вообще решение зависит от конкретной ситуации. Опишите подробнее, как все должно происходить.

Граната
Здесь сразу вопрос: что именно требуется? Взрыв брошенной гранаты в воздухе? Или подрыв растяжки?

0

195

Sergey_Ros написал(а):

- взрыв небольшого размера (находится по адресу: Special Effects/Explosion). Проверить радиус взрыва можно через Preview Window;

Но ведь взрыв из Explosion не переносится в мир, а мне нужен именно оттуда (свой взрыв) сделать в определённом месте после нажатия на активатор. А поскольку один взрыв не переносится, то я его хотел поцепить на гранату и взорвать скриптом.

Отредактировано Серёга (19.05.11 17:01:03)

0

196

Серёга,

Серёга написал(а):

А не легче сделать просто бесконечные пули (метательные объекты) ?

каким образом?

0

197

fillimor, Там вроде есть такая функция, галочку только надо поставить. Но чтобы это сделать надо настраивать само оружее. Я когда делал мод Assault_Rifle_LCU_GP сталкивался с бесконечными пулями. Нужно просто эксперементировать.

0

198

Серёга написал(а):

Но ведь взрыв из 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)".

Вот и все.

+1

199

Sergey_Ros, Спасибо попробую. Это как раз то что мне нужно.

0

200

Народ, как этот скрипт переделать для брони ?

Код:
scn aaaRestoreHealth

short HLTH

begin onHit player
set HLTH to GetActorValue health
if HLTH > 0
RestoreActorValue Health 100
elseif HLTH <= 0
kill
endif
end

0

201

Серёга, больше подробностей, пожалуйста. Броню будет носить только ГГ или все?

0

202

Sergey_Ros, Да. Вобще этот скрипт мне нужен в трёх вариантах, первый это какой он есть, второй это когда он на броне чтобы как только "здоровье" брони падало до 0, NPC умирал, и третий вариант когда броня сразу приходила в негодность но NPC не умерал ?

Иными словами мне нужны два скрипта.

Если нет времени или не можете по каким то причинам написать такой скрипт. Пожалуйста, напишите  в л.с.

Отредактировано Серёга (24.05.11 00:34:53)

0

203

Sergey_Ros написал(а):

Да, не переносится, но в вашем случае это вообще не нужно. И расставлять мины/гранаты в мире игры тоже не нужно. В предыдущем сообщения я упоминал функцию "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 DoOnce

Begin 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 ? Неподскажите как ?

0

204

Серёга, скрипт для третьего варианта -

Код:
scn aaaImmediateWeakeningArmor

short HLTH

begin onLoad
set HLTH to GetHealthPercentage
set HLTH to 0
end

Скрипт прицепить на броню.
Над вторым скриптом ещё думаю...

+2

205

Rus-IP, Спасибо.

0

206

Здраствуйте,  а можете подсказать скрипт, при котором например если в триггере 2 нпц умерли, то квест переходил на следующую стадию ? Или какой нибудь легче способ это сделать.

0

207

Серёга,

Код:
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)

+2

208

Rus-IP, Спасибо.

0

209

Здраствуйте. Я хочу сделать скрипт ядерного удара через обычный выключатель с красной и зелёной кнопкой но я незнаю как. Я неумею делать скрипты. Так же я незнаю что надо сделать чтобы ядерный взрыв был в локации которую я выбрал. В данном случае Форт Баннистер.

0

210

Добрый день всем. Прочитал вроде все, но ответа на свой вопрос не нашел. Как получить ID объекта в контейнере? Или, если объектов в контейнере несколько, организовать их перебор?

0


Вы здесь » Форум «Лабортории Mod-Tec» » G.E.C.K. Community » Помощь по скриптам Fallout 3 и Fallout: New Vegas