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

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



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




Obscurantist  Offline  Сообщение №151 написано: 24 апреля 2011, 09:27



24
Цитата ITU

сначало надо скрипт сохранить с этой переменной без привязки, назначит скрипт объекту, изменить в скрипте уже в условиях к этому объекту


скрипт привязываешь к нескольким объектам (к которым потом привязываешь переменные)?
спасибо за ссылку на патч.

ITU  Offline  Сообщение №152 написано: 24 апреля 2011, 09:31 | Отредактировано: ITU - 24 апреля 2011, 14:17



995
Цитата Obscurantist

скрипт привязываешь к нескольким объектам (к которым потом привязываешь переменные)?


ну да, просто вызов то из тоже скрипта выходит

DeusExMechanicus  Offline  Сообщение №153 написано: 24 апреля 2011, 19:13



34
Глупый вопрос: чему по умолчанию равно значение переменной типа short? Если отдельно не присваивать его? Нулю?

Artem13  Offline  Сообщение №154 написано: 25 апреля 2011, 07:57


Mercenaries. Со смертью на ты.


DeusExMechanicus, теоретически - нулю. Но лучше на это не полагаться, а явно инициализировать переменные (если необходимо).

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
DeusExMechanicus  Offline  Сообщение №155 написано: 25 апреля 2011, 10:09



34
Спасибо.

Artem13  Offline  Сообщение №156 написано: 26 апреля 2011, 16:23


Mercenaries. Со смертью на ты.


Дорисовал статейку по Мультирежимному оружию, ждём модераторов ;)

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
DeusExMechanicus  Offline  Сообщение №157 написано: 29 апреля 2011, 13:22 | Отредактировано: DeusExMechanicus - 29 апреля 2011, 13:23



34
Взял скрипт из статьи Artem13, при компиляции пишет "Exepted end of line" в строке 16. Строка сама - player.EquipItem 01Lasgun 1 0 1. Яподставил только свои ID, больше не менял в скрипте ничего. Что может быть не так?

На всякий случай, приведу полностью:

Code
scn 01A13WeaponModeChoiceScript
short A13Key
float A13WeaponCond
begin OnEquip player
if MenuMode 1002
ShowMessage 01ChangeWeapon
endif
end
begin MenuMode 1002
set A13Key to GetButtonPressed
if A13Key < 1  
return
elseif A13Key == 1  
set A13WeaponCond to player.GetWeaponHealthPerc
player.AddItem 01Lasgun 1 1
player.EquipItem 01Lasgun 1 0 1
player.SetWeaponHealthPerc A13WeaponCond
removeme
elseif A13Key == 2  
set A13WeaponCond to player.GetWeaponHealthPerc
player.AddItem 01LasgunAutomatic 1 1
player.EquipItem 01LasgunAutomatic 1 0 1
player.SetWeaponHealthPerc A13WeaponCond
removeme
endif
end

Artem13  Offline  Сообщение №158 написано: 29 апреля 2011, 13:39


Mercenaries. Со смертью на ты.


DeusExMechanicus, сорри, напутал немного. Функция EquipItem имеет только два параметра. Я этот кусок по памяти писал и с чем то спутал, видимо. первую единицу убери. Т.е. должно остаться player.EquipItem 01Lasgun 0 1

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
DeusExMechanicus  Offline  Сообщение №159 написано: 29 апреля 2011, 19:41



34
Спасибо.

[HazarDous]  Offline  Сообщение №160 написано: 2 мая 2011, 04:16



476
Помогите пожалуйста. Мне нужен скрипт который бы при выстреле из мое оружия помещал в место прицеливания маркер телепортаци.

Oh no, not me,
I never lost control.
You're face to face
With the man who sold the world.
Artem13  Offline  Сообщение №161 написано: 2 мая 2011, 07:29


Mercenaries. Со смертью на ты.


[PAIN], няз, стандартными средствами нереализуемо, т.к. нет команды, которая возвратила бы это самое место прицеливания. Возможно, что нечто подобное есть в НВСЕ, но им я не владею, можно сказать из принципа.

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
[HazarDous]  Offline  Сообщение №162 написано: 2 мая 2011, 08:12



476
А можно ли реализовать как Алгоритм Евклида, там вроде этот самый луч в месте прицеливания появляется?

Oh no, not me,
I never lost control.
You're face to face
With the man who sold the world.
Artem13  Offline  Сообщение №163 написано: 2 мая 2011, 08:45


Mercenaries. Со смертью на ты.


А, да, не подумал, возможно,наверное. Но для этого тебе нужно распотрошить Алгоритм Евклида :) Ибо у мну времени нет. А насчей телепорта - надо в нужную точку помещать триггер со скриптом телепортации.

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
Scail  Offline  Сообщение №164 написано: 5 мая 2011, 11:47


Viper Armory Inc.


94
Подскажите, можно ли написать скрипт отправляющий всех компаньонов по домам?

Попотрошил Dead Money и нашел такой скрипт:

Code
scn NVDLC01VillaTravelTriggerScript
; JSH
; Knocks the player out and transports him to the Villa.

;CES 10/18/10
;Fine tuning and polishing the gassing part of the script

short StartUp                              ;1= Player has tripped the trigger zone
short EndStartUp                              
float TimerA                              
float TimerB                              
float TimerC                              
float TimerD
float TimerE
float TimerZ                              ;Added for first timer to trigger player teleportation

short bTimerZDone

BEGIN OnTrigger player

  ; Complete NVDLC01MQ00 and get the player set up to be knocked out.
  if (StartUp == 0) && (GetStageDone NVDLC01MQ00 10 == 1)
    
   if (VNPCFollowers.bBooneHired == 1)
    ;set CraigBooneRef.Waiting to 1
   elseif (VNPCFollowers.ArcadeHired  == 1)
    ;set ArcadeRef.Waiting to 1
   elseif (VNPCFollowers.RaulHired  == 1)
    ;set RaulRef.Waiting to 1
   elseif (VNPCFollowers.bVeronicaHired  == 1)
    ;set VeronicaRef.Waiting to 1
   elseif (VNPCFollowers.bLilyHired  == 1)
    ;set LilyRef.Waiting to 1
   elseif (VNPCFollowers.bCassHired  == 1)
    ;set RoseOfSharonCassidyRef.Waiting to 1
   endif

   if (VNPCFollowers.RexHired == 1)
    ;set RexRef.Waiting to 1
   elseif (VNPCFollowers.bEdEHired == 1)
    ;set EDE1Ref.Waiting to 1
    ;set EDE2Ref.Waiting to 1
    ;set EDE3Ref.Waiting to 1
   endif

   SetObjectiveCompleted NVDLC01MQ00 10 1
   SetStage NVDLC01MQ00 100
   DisablePlayerControls 1 1 1 1 1 1 1
   Set TimerA to 1
   Set TimerA to .2
   Set StartUp to 1
   ApplyImageSpaceModifier ExplosionInFace

   PlaySound QSTNVDLC01OpeningStinger
   PlaySound QSTDLCTrap

  endif

END

Но насколько я понял он действует только на стандартных игровых компаньонов.
Для ясности мне нужен следующий эффект: игрок подходит к двери, заходит, но при этом все (отмечу ВСЕ) компаньоны уходят и игрок остается один.



Scail  Offline  Сообщение №165 написано: 5 мая 2011, 16:25


Viper Armory Inc.


94
Galko, а есть универсальная команда? Я конечно нашел выход, отрезал компьонов от игрока через player.moveto

Не знаю насчет половины, я этот скрипт из Dead Money взял, а там он работает полностью.

Мне нужен скрипт запускающийся через Begin onActivate. Как его активировать это не важно, мне главное чтобы он разгонял левых компаньонов. Тех что добавленны по модам. Но судя по конструкции скрипта так нельзя, нужно прописывать каждого поименно.



Graf  Offline  Сообщение №166 написано: 5 мая 2011, 16:51



179
Scail, Легче уже просто сделать их desable на некоторое время а потом обратно. Ну и так можно, только в том скрипте половина вам не нужна.

Добавлено (05.05.2011, 20:51)
---------------------------------------------
Scail, А на что вы скрипт хочете повесить ?


...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Scail  Offline  Сообщение №167 написано: 5 мая 2011, 16:52


Viper Armory Inc.


94
Galko, Еще раз перепроверил скрипт работает полностью, все строки читаются, компаньоны уходят. (Проверял взяв только строки с запятыми).
В Dead Money делалось так, разработчики разогнали всех стандартных компаньонов и телепортировали игрока через player.moveto в недосягаемую для левых компаньонов локацию (это конечно не панацея, так как скиллы ни куда не деваются), придется мне сделать так же (хоть рядом с игроком никого не будет).
Спасибо за помощь.


Graf  Offline  Сообщение №168 написано: 5 мая 2011, 16:55



179
Цитата Scail

Еще раз перепроверил скрипт работает полностью, все строки читаются, компаньоны уходят. (Проверял взяв только строки с запятыми). В Dead Money делалось так, разработчики разогнали всех стандартных компаньонов и телепортировали игрока через player.moveto в недосягаемую для левых компаньонов локацию (это конечно не панацея, так как скиллы ни куда не деваются), придется мне сделать так же (хоть рядом с игроком никого не будет). Спасибо за помощь.


А вы понимаете что если вы будете использовать этот скрипт то те кто не прошол дед-мани будут начинать стадию 100 в том квесте ?

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Artem13  Offline  Сообщение №169 написано: 5 мая 2011, 17:48


Mercenaries. Со смертью на ты.


Scail, поаккуратнее. Похоже, скрипт работает исключительно за счёт квеста, поэтому сначала попробуй скрипт без упоминания квеста. И если он сработает, то я ничего не понимаю, ибо ; - это комментарий.

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
Scail  Offline  Сообщение №170 написано: 5 мая 2011, 18:14


Viper Armory Inc.


94
Graf, при чем тут Dead Money? Я взял скрипт и подгоняю его под свой квест. Для моего мода Dead Money даже не нужен.
Artem13, подогал под свой квест ; убрал, действительно не работало. А так все в порядке.


Graf  Offline  Сообщение №171 написано: 5 мая 2011, 18:20



179
Scail, Понятно.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
stalker992  Offline  Сообщение №172 написано: 6 мая 2011, 04:46



117
насчет отправки компаньонов по домам - советую посмотреть скрипт на триггере в убежище 87 (Fallout 3) в том месте, где гг попадает в засаду анклава. в последних блоках этого скрипта как раз и отсылаются по домам все компаньоны.

Scail  Offline  Сообщение №173 написано: 6 мая 2011, 08:20


Viper Armory Inc.


94
stalker992, посмотрел тот скрипт. Та же фигня, компаньоны разгоняются поименно. Но спасибо за подсказку, в F3 я нашел решение для другого скрипта.


[HazarDous]  Offline  Сообщение №174 написано: 6 мая 2011, 11:19



476
У меня получилось, чтобы предмет появлялся в месте прицеливания, но с ним через скрипты взаимодействовать не выходит, так-как у них нет Ref-ID, есть ли какая нибудь команда, которая через скрипт добавила только-что созданному объекту Ref-ID?

Oh no, not me,
I never lost control.
You're face to face
With the man who sold the world.
ITU  Offline  Сообщение №175 написано: 6 мая 2011, 13:37



995
[PAIN], все просто, в скрипте из деад моней на спавн снежного шара из дополнения это

вроде так, но лутше уточни

ref Obj

set obj to место_появления.placetme объект


[HazarDous]  Offline  Сообщение №176 написано: 6 мая 2011, 14:28



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

Oh no, not me,
I never lost control.
You're face to face
With the man who sold the world.
Artem13  Offline  Сообщение №177 написано: 6 мая 2011, 15:18 | Отредактировано: Artem13 - 6 мая 2011, 15:19


Mercenaries. Со смертью на ты.


[PAIN], в корне неверно. Кажется, я этот момент в туторе описывал. У любого объекта есть ссылка. В цифровом мире, в отличие от реального, любой объект будет практически являться копией некого виртуального "оригинала".
У ссылки не обязательно наличие символьного имени - у неё есть уникальный цифровой идентификатор.

ЗЫ Я для чего, вообще, тутор писал ;)


<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
ITU  Offline  Сообщение №178 написано: 6 мая 2011, 15:48 | Отредактировано: ITU - 6 мая 2011, 18:11



995
Цитата |PAIN|

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


так я ж сказал
ищи в скриптах мертвых денег в название со словом snowglobe (точно не скажу, нету гекка в данный момент), там же работает изменение координаты объекту который спавнится скриптом

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

добавлено:
если сделать так, прокатит?
if рефрешшарика_со_скриптом.название_переменной_в_скрипте
шарик.enable
endif


[HazarDous]  Offline  Сообщение №179 написано: 6 мая 2011, 17:05 | Отредактировано: [PAIN] - 6 мая 2011, 17:06



476
Вроде дошло, завтра отпишусь о результате. Artem13 Спасибо за тутор :D

Oh no, not me,
I never lost control.
You're face to face
With the man who sold the world.
Бун  Offline  Сообщение №180 написано: 6 мая 2011, 17:51


Лагогенератор


757
Пожалуйста, дайте скрипт чтобы когда нажимал на реплику терминала давался предмет.

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





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