The Elder Scrolls & Fallout 3 Modding

на главную страницу сайта

Форум Oblivion, Skyrim & Fallout 3/4 Modding

Объявление

У нас есть свой сервер Дискорда. Заходите, пообщаемся.
Господа, те кто пользуются фотохостингом https://uploads.ru/ для размещения изображений. Рекомендую воспользоваться для упрощения загрузки вот этой программой.

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

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


Вы здесь » Форум Oblivion, Skyrim & Fallout 3/4 Modding » G.E.C.K. » Вопросы по скриптам в Fallout 3


Вопросы по скриптам в Fallout 3

Сообщений 211 страница 240 из 418

211

Rus-IP
Вариант решения задачи:
Создаем эффектный (т.е. для эффектов) скрипт со следующим кодом:

Код:
scn aaaHeadExplodeSCRIPT

Begin ScriptEffectStart
	Player.Kill Player 1 0
End

1) Создаем новый BaseEffect (Путь: Game Effects --> Base Effect).
2) Заполняем поля ID и Name.
3) В поле Effect Archetype выбираем Script.
4) В поле Assoc. Item выбираем наш скрипт.
5) Нажимаем OK.
6) "Открываем" нашу морковку, в большом поле в правой части окна нажимаем New.
7) Из списка Effect выбираем наш эффект.
8) Везде нажимаем OK.

По идее, этого достаточно. За работоспособность не отвечаю, т.к. сам в игре не проверял.

Отредактировано Sergey_Ros (2011-03-08 20:44:28)

0

212

Я попробовал этот скрипт но ничего не получилось.

0

213

Sergey_Ros, спасибо Вам огромное! Уже не первый раз мне помогаете со скриптом! Вы только забыли указать, что при создании эффекта нужно было поставить flag - "Self". Поэтому, наверное, у Вас, micshkarez такой способ не сработал. Ещё раз спасибо!

Отредактировано Rus-IP (2011-03-08 23:03:19)

0

214

Есть ещё 1 вопрос - возможно ли сделать так, чтобы эта морковка взрывала голову через 5 секунд после её поедания?

Отредактировано Rus-IP (2011-03-08 22:18:05)

0

215

ну ты псих :) напиши кому она должна башку взрывать и зачем .Можно просто в скрипте сделать чтоб ГГ умирал в определённый момент =)

0

216

BloodBear, прочитай предыдущие сообщения. Узнаешь кому и как.

Отредактировано Rus-IP (2011-03-08 22:52:04)

0

217

Rus-IP, да, вполне. Вот доработанный код:

Код:
scn aaaHeadExplodeSCRIPT

short Stage
float Timer

Begin ScriptEffectStart
if (Stage == 0)
  set Stage to 1
endif
End


Begin ScriptEffectUpdate
if (Stage == 1)
  Set Timer to Timer + ScriptEffectElapsedSeconds
    if (Timer >= 5)
      Player.Kill Player 1 0
      set Stage to 2
    endif
endif  
End

И спасибо за заметку на счет флага. Еще немного опыта в мою копилку :).

0

218

Не работает: по истечении 5 секунд ничего не происходит, а после окончания эффекта прибавления ОЗ, FPS с 60 падает до ~50 и начинаются рывки.

Отредактировано Rus-IP (2011-03-08 23:17:20)

0

219

Rus-IP, возможно, следует установить длительность эффекта в морковке. Секунд на 6-10. По идее, должно решить проблему. Т.к. скрипт, опять же, вроде бы, в порядке.

0

220

Sergey_Ros, сработало! Спасибо, сам бы до этого не додумался, т.к. работать с эффектами вообще не умею.

0

221

Rus-IP, поэтому и существуем мы - общество скриптописателей! (о как, пффф...). В общем, спасибо за задачку. Полезно.

0

222

Помогите со скриптом пожалуйста :) Никогда не разбирался в программировании. Скрипт нужен для мода под Fallout 3. Нужно чтобы после загрузки сейва, то есть появления игрока в мире определённые вещи, добавляемые модом появлялись в инвентаре. А если бы они ещё и надевались сразу, то было бы вообще офигенно, но чтобы вещи появлялись только один раз, а при последующих загрузках нет

Отредактировано Akavir (2011-03-12 19:59:26)

0

223

Для начала нужно создать квест. И сделать так, чтобы он запускался вместе c началом игры. для этого нужно отметить флаг -  Start Game Enabled. К квесту прикрепить скрипт следующего содержания (тип скрипта - Quest):

scn Adding My Object

short val

begin GameMode
if (val == 0)
Player.EquipItem Object
Player.EquipItem Object2
Player.EquipItem Object3
set val to 1
endif
end

Что-то типа такого.
Вот еще ссылка на описание функции EquipItem:
http://geck.bethsoft.com/index.php/EquipItem

0

224

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

Для начала нужно создать квест. И сделать так, чтобы он запускался вместе c началом игры. для этого нужно отметить флаг -  Start Game Enabled. К квесту прикрепить скрипт следующего содержания (тип скрипта - Quest):

scn Adding My Object

short val

begin GameMode
if (val == 0)
Player.EquipItem Object
Player.EquipItem Object2
Player.EquipItem Object3
set val to 1
endif
end

Что-то типа такого.
Вот еще ссылка на описание функции EquipItem:
http://geck.bethsoft.com/index.php/EquipItem

Извините, что не там написал сначала свой вопрос. Спасибо большое сейчас попробую.

0

225

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

Извините, что не там написал сначала свой вопрос.

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

Код:
scn Adding My Object

short val

begin GameMode
if (val == 0)
Player.AddItem Object
Player.AddItem Object2
Player.AddItem Object3
Player.EquipItem Object
Player.EquipItem Object2
Player.EquipItem Object3
set val to 1
endif
end

0

226

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

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

Потрясающе, скрипт работает, последняя его версия. Теперь когда игрок появляется, к нему в инвентарь добавляется  основной костюм, перчатки и очки, а основной костюм и перчатки потом надеваются. Спасибо большое. Остаюсь на этом форуме.

0

227

Здраствуйте, мне нужно чтоб когда я ставил подствольник на оружее (при нажатии определённой кнопки) то он изменял стрельбу на другую. Этоделается через скрипт, и я так понял это делается типа как ставишь подствольник и обычное оружие удаляется а новое с подствольником добавляется и поэтому я прошу помочь со скриптом.

0

228

Уже не надо я вроде понял как это сделать.

0

229

Подскажите почему когда я использую этот скрипт на одно оружее и выбираю его в игре то всё нормально:

Код:
scn AAAWeapAssaultRiflescript1

float weaponCondition
short needequip
short button

begin OnEquip
	if menumode
    	set needequip to 1
    	ShowMessage AAAWeapAssaultRifleScript1
        set weaponCondition to player.GetWeaponHealthPerc / 100
        player.AddItemHealthPercent AAAWeapAssaultRifleLCU 1 weaponCondition 1
        player.EquipItem AAAWeapAssaultRifleLCU 0 1
        removeme
        set weaponCondition to player.GetWeaponHealthPerc / 100
        player.AddItemHealthPercent AAAWeapAssaultRifleGP 1 weaponCondition 1
        player.EquipItem AAAWeapAssaultRifleGP 0 1
        removeme
	endif
end

Begin MenuMode
	if needequip
    set Button to GetButtonPressed
    if ( Button == 1 )
    	set needequip to 0
    elseif ( Button == 2 )
    	set needequip to 0
    	set weaponCondition to player.GetWeaponHealthPerc / 100
    	player.AddItemHealthPercent AAAWeapAssaultRifleGP 1 weaponCondition 1
    	player.EquipItem AAAWeapAssaultRifleGP 0 1
    	removeme
    endif
	endif
end

А когда ставлю этот скрипт на второе оружее то при активации оружия вылетает из игры и выписывает ошибку, вот скрипт:

Код:
scn AAAWeapAssaultRiflescript2

float weaponCondition
short needequip
short button

begin OnEquip
	if menumode
    	set needequip to 1
    	ShowMessage 	AAAWeapAssaultRifleMessage
        set weaponCondition to player.GetWeaponHealthPerc / 100
        player.AddItemHealthPercent AAAWeapAssaultRifleLCU 1 weaponCondition 1
        player.EquipItem AAAWeapAssaultRifleLCU 0 1
        removeme
        set weaponCondition to player.GetWeaponHealthPerc / 100
        player.AddItemHealthPercent AAAWeapAssaultRifleGP 1 weaponCondition 1
        player.EquipItem AAAWeapAssaultRifleGP 0 1
        removeme
    endif
	endif
end

Begin MenuMode
	if needequip
    set Button to GetButtonPressed
    if ( Button == 1 )
    	set needequip to 0
    	set weaponCondition to player.GetWeaponHealthPerc / 100
    	player.AddItemHealthPercent AAAWeapAssaultRifleLCU 1 weaponCondition 1
    	player.EquipItem AAAWeapAssaultRifleLCU 0 1
    	removeme
    elseif ( Button == 2 )
    	set needequip to 0
    endif
	endif
end

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

0

230

Я переделал скрипты в такие :
НА ПЕРВОМ ОРУЖИИ

scn AAAWeapAssaultRiflescript4

float weaponCondition
short needequip
short button

begin OnEquip
if menumode
    set needequip to 1
    ShowMessage AAAWeapAssaultRifleMessage
    elseif player.GetItemCount AAAWeapAssaultRifleLCU == 0 && player.GetItemCount AAAWeapAssaultRifleGP >= 1
        set weaponCondition to player.GetWeaponHealthPerc / 100
        player.AddItemHealthPercent AAAWeapAssaultRifleLCU 1 weaponCondition 1
        player.EquipItem AAAWeapAssaultRifleLCU 0 1
        removeme
    elseif player.GetItemCount AAAWeapAssaultRifleLCU >= 1 && player.GetItemCount AAAWeapAssaultRifleGP == 0
        set weaponCondition to player.GetWeaponHealthPerc / 100
        player.AddItemHealthPercent AAAWeapAssaultRifleGP 1 weaponCondition 1
        player.EquipItem AAAWeapAssaultRifleGP 0 1
        removeme
endif
end

Begin MenuMode
if needequip
    set Button to GetButtonPressed
    if ( Button == 1 )
    set needequip to 0

    elseif ( Button == 2 )
    set needequip to 0
    set weaponCondition to player.GetWeaponHealthPerc / 100
    player.AddItemHealthPercent AAAWeapAssaultRifleGP 1 weaponCondition 1
    player.EquipItem AAAWeapAssaultRifleGP 0 1
    removeme
    endif
endif
end

НА ВТОРОМ ОРУЖИИ

scn AAAWeapAssaultRiflescript3

float weaponCondition
short needequip
short button

begin OnEquip
if menumode
    set needequip to 1
    ShowMessage AAAWeapAssaultRifleMessage
    elseif player.GetItemCount AAAWeapAssaultRifleLCU >= 1 && player.GetItemCount AAAWeapAssaultRifleGP == 0
        set weaponCondition to player.GetWeaponHealthPerc / 100
        player.AddItemHealthPercent AAAWeapAssaultRifleLCU 1 weaponCondition 1
        player.EquipItem AAAWeapAssaultRifleLCU 0 1
        removeme
    elseif player.GetItemCount AAAWeapAssaultRifleLCU == 0 && player.GetItemCount AAAWeapAssaultRifleGP >= 1
        set weaponCondition to player.GetWeaponHealthPerc / 100
        player.AddItemHealthPercent AAAWeapAssaultRifleGP 1 weaponCondition 1
        player.EquipItem AAAWeapAssaultRifleGP 0 1
        removeme
endif
end

Begin MenuMode
if needequip
    set Button to GetButtonPressed
    if ( Button == 1 )
    set needequip to 0
    set weaponCondition to player.GetWeaponHealthPerc / 100
    player.AddItemHealthPercent AAAWeapAssaultRifleLCU 1 weaponCondition 1
    player.EquipItem AAAWeapAssaultRifleLCU 0 1
    removeme
    elseif ( Button == 2 )
    set needequip to 0
    endif
endif
end

Как сделать так чтоб при выборе оружия и выбирая например 2 это оружее удалялось а второе добавлялось и наоборот ? Этот скрипт поидее должен выполнять эти функции но невыполняет, в чем проблема ?

Отредактировано speed_sn1er (2011-04-13 20:34:43)

0

231

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

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

Я думаю, что виновата функция removeme. Вот что пишет беседка по этому поводу:
In Fallout3.esm the only usage of this function is inside OnAdd blocks. If used outside of this block, RemoveMe may crash the game.
По своему опыту скажу, функция removeme и в самом деле глюкавая. Во-первых, она равносильна команде return, и все, что за ней, уже не выполняется. А во-вторых, если скрипт висит на самом предмете, (т.е. он сам себе деает removeme), то выполнение скрипта прекращается, а предмет как бы рождается заново, т.е. все переменные скрипта находятся в исходном состоянии.

0

232

SpalnyVagon, И что мне делать ?

0

233

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

SpalnyVagon, И что мне делать ?

Ты первое оружие из второго удаляй, когда второе в руках окажется и всё.

Отредактировано Wulf (2011-04-13 21:49:10)

0

234

Wulf, А подругому никак ?

0

235

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

Wulf, А подругому никак ?

Ну это наипростейший вариант.  Лучше не заморачиваться... :)

0

236

Wulf, Понятно, спасибо.

0

237

Wulf, Оказалось всё работает по очень тонкой системе (в инвентаре будит только одно оружее), сначала нужно взять винтовку и выбрать её по окну которое выбьет и забиндить на кнопку потом выйти из пип-боя и нажать два раза на ту кнопку и оружие поменяется на другое которое с подствольником, что бы изменить обратно нужно так же  сделать с оружием №2  :cool:  спасибо всем за помощь.

0

238

Гм, как то всё странно и загадочно... :) Теперь бы пользователю мода это всё объяснить, а то орать будут, что не работает... :)

0

239

Wulf, Да я кроме этого описание в само описание мода закинул видео как это сделать, всё продумано  ;)

0

240

Здраствуйте, у меня возник вопрос по скриптам
можно или нет использовать фрагменты скриптов из модов?
....если логически подумать то подругому скрипт ведь не напишеш.

0


Вы здесь » Форум Oblivion, Skyrim & Fallout 3/4 Modding » G.E.C.K. » Вопросы по скриптам в Fallout 3