Перейти к содержимому


Фотография
- - - - -

Скрипты в GECK


  • Авторизуйтесь для ответа в теме

#1 Ссылка на это сообщение AxelRoadman

AxelRoadman
  • Скиталец
  • 37 сообщений

Отправлено

Так как темы по скриптингу здесь нет, я решил создать таковую.

Знающие люди, подскажите, существует ли функция, при помощи которой можно узнать, сколько времени player провёл в режиме сна.
Есть функция GetPCSleepHours, но насколько я понял, она возвращает значение, которое игрок выставляет в меню сна. Мне кажется это не очень надёжным.
Мне нужна надёжная функция, которая по окончании сна, возвратила бы количество часов/минут/секунд.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 24

#2 Ссылка на это сообщение Кот Зловред

Кот Зловред
  • 606-й
  • 1 557 сообщений
  •    

Отправлено

Посмотри в OSFM версии 1.2 - она оффлайновая. Скачай и глянь, может найдёшь чего, там много схожего. Для Фолла пока ничего такого не было, насколько я знаю.

29574fe2b8fb.gif   <---------- можна жмакнуть


#3 Ссылка на это сообщение AxelRoadman

AxelRoadman
  • Скиталец
  • 37 сообщений

Отправлено

Спасибо за ссылку
Интересно, все ли функции описанные в OSFM, будут работать в Fallout? Fallout конечно тоже TES4, но мало ли. Однако функции возвращающей кол-во часов, прведённых во сне, нету. Значить буду извращаться.

#4 Ссылка на это сообщение Visman

Visman
  • Талант
  • 216 сообщений

Отправлено

Думаю по Фоллу надо на оф.сайт идти и искать ссылки на англ. ресурсы.
Вам не кажется, что plаygrоund.ru есть синоним слову ворье?

#5 Ссылка на это сообщение AxelRoadman

AxelRoadman
  • Скиталец
  • 37 сообщений

Отправлено

Был я на официальной wiki, информации там немного. По меньшей мере по функциям и переменным Game Setting.

#6 Ссылка на это сообщение Кот Зловред

Кот Зловред
  • 606-й
  • 1 557 сообщений
  •    

Отправлено

Очень нужна помощь со скриптом, позволяющим выбирать при экипировке тип используемых боеприпасов. Всего два типа, в месседжбоксе две кнопки.
Создано два идентичных пистолета, под разными ИД под разные патроны. Оба они положены в форм-лист. Два нужных боеприпаса тоже положены в отдельный форм-лист. Создано и настроено месседж-окно с условиями. Написан скрипт по образу и подобию такого же, только с гораздо большим ассортиментом патронов для ствола, но тот работает, а мой нет ><
Проблема в том, что на первую кнопку месседжбокса оружие реагирует нормально, а на второй - не экипируется вообще. Если кто знает - как это вылечить, помогите плз - сам плаг почти готов, преимущественно скрипты остались..

[codebox]scn aaaAmmo10mmPistolSelect

float weaponCondition
short needequip
short button

short hasJHP
short hasAP
short numAmmoTypes
short currentAmmoType
short pistolType

begin OnEquip
if menumode
if player.GetItemCount CFammo10mmJHP >= 1
set hasJHP to 1
else
set hasJHP to 0
endif
endif
if player.GetItemCount CFammo10mmAP >= 1
set hasAP to 1
else
set hasAP to 0
endif

set numAmmoTypes to ( hasJHP + hasAP )

if player.IsWeaponInList aaa10mmAmmo
set currentAmmoType to 1
elseif player.IsWeaponInList aaa10mmAmmo
set currentAmmoType to 2
endif

if player.IsWeaponInList aaa10mmPistols
set PistolType to 1
elseif player.IsWeaponInList aaa10mmPistols
set PistolType to 2
endif

if numAmmoTypes > 1
set needequip to 1
ShowMessage aaa10mmSelectionMSG
elseif numAmmoTypes == 1
set weaponCondition to player.GetWeaponHealthPerc / 100
if hasJHP == 1 && currentAmmoType != 1
if PistolType == 1
player.AddItemHealthPercent Weap10mmPistol 1 weaponCondition 1
player.EquipItem Weap10mmPistol 0 1
removeme

elseif hasAP == 1 && currentAmmoType != 2
if PistolType == 1
player.AddItemHealthPercent Weap10mmPistolAP 1 weaponCondition 1
player.EquipItem Weap10mmPistolAP 0 1
removeme
endif
endif
endif
endif
end

Begin MenuMode
if needequip
set button to GetButtonPressed

if ( button == 0 )
set needequip to 0
elseif ( button == currentAmmoType )
set needequip to 0
elseif button > 0
set weaponCondition to player.GetWeaponHealthPerc / 100
set needequip to 0
if button == 1
if PistolType == 1
player.AddItemHealthPercent Weap10mmPistol 1 weaponCondition 1
player.EquipItem Weap10mmPistol 0 1
removeme
if PistolType == 2
player.AddItemHealthPercent Weap10mmPistol 1 weaponCondition 1
player.EquipItem Weap10mmPistol 0 1
removeme

elseif button == 2
if PistolType == 1
player.AddItemHealthPercent Weap10mmPistolAP 1 weaponCondition 1
player.EquipItem Weap10mmPistolAP 0 1
removeme
if PistolType == 2
player.AddItemHealthPercent Weap10mmPistolAP 1 weaponCondition 1
player.EquipItem Weap10mmPistolAP 0 1
removeme
endif
endif
endif
endif
endif
endif
endif

end[/codebox]

29574fe2b8fb.gif   <---------- можна жмакнуть


#7 Ссылка на это сообщение Garin

Garin
  • Новенький
  • 2 сообщений

Отправлено

С понедельника 19 июня 2009 команда OSFM team приступает к работе над вторым томом OSFM, который будет посвящен OBSE v0017.
Думаю, сделаем быстро.
Как вы считаете, имеет ли смысл преобразовать OSFM в FSFM? То есть, провести полную перетряску первого тома учебника с учетом специфики Fallout3?
Это будет следующим шагом. Ко всему прочему, сейчас появился расширитель скриптового языка Fallout`a, так называемый FSE.

#8 Ссылка на это сообщение IgorLutiy

IgorLutiy
  • Выбраковщик
  • 1 074 сообщений
  •    

Отправлено

Как вы считаете, имеет ли смысл преобразовать OSFM в FSFM?

Думаю стоит. Во-первых делать придется не с нуля, это уже проще. А во-вторых особенности все-таки есть в скриптинге Фаллаута и неплохо бы их расписать.

Мир друзьям - смерть врагам!

Мой новый сайт-блог: https://igorlutiy.pp.ua - как некое подведение итогов моей жизни в интернете

Мой профиль на Самиздате: http://samlib.ru/l/ljutyj_i/


#9 Ссылка на это сообщение Cool_Wolf

Cool_Wolf
  • Знаменитый оратор

  • 7 658 сообщений
  •    

Отправлено

Как вы считаете, имеет ли смысл преобразовать OSFM в FSFM? То есть, провести полную перетряску первого тома учебника с учетом специфики Fallout3?

отдельным учебником - это будет хорошо)
ИзображениеИзображениеИзображение

#10 Ссылка на это сообщение Visman

Visman
  • Талант
  • 216 сообщений

Отправлено

OSFM и FSFM должны быть разными учебниками! :muahaha:
Вам не кажется, что plаygrоund.ru есть синоним слову ворье?

#11 Ссылка на это сообщение Garin

Garin
  • Новенький
  • 2 сообщений

Отправлено

Они и будут. Думаю, раз народ поддерживает, поставить FSFM в планы.

#12 Ссылка на это сообщение Vault-Anton

Vault-Anton
  • Авантюрист
  • 157 сообщений

Отправлено

По идеи Oblivion и Fallout 3 сделаны на одном движке и многие скрипты одинаковы, поэтому OSFM и FSFM должны в чём то сочетаться, но Фолл использует некоторые функции не присутствующие в Обле значит FSFM немного будет отличаться от FSFM.
Пончик без дырки - это пирожок!!!

#13 Ссылка на это сообщение Vivec

Vivec
  • Авантюрист
  • 162 сообщений

Отправлено

Помогите со скриптом.
Я сделал мужика, который брамина продаёт. Так вот, мне нужно, чтобы после реплики "Вот твои 200 крышек" брамин присоединялся бы к фракции компаньонов, а из инвентаря убирались бы деньги.

#14 Ссылка на это сообщение IgorLutiy

IgorLutiy
  • Выбраковщик
  • 1 074 сообщений
  •    

Отправлено

В результирующем скрипте пишем следующее:
ActorID.SetFactionRank FactionID, 0
Player.RemoveItem Caps001 200

ActorID - это АйДи Брамина (если быть точным, нужно указывать RefID)
FactionID - АйДи фракции

ЗЫ: неплохо бы еще сделать и проверку на наличие денег у игрока. Но это проще сделать через условие для фразы диалога.

Мир друзьям - смерть врагам!

Мой новый сайт-блог: https://igorlutiy.pp.ua - как некое подведение итогов моей жизни в интернете

Мой профиль на Самиздате: http://samlib.ru/l/ljutyj_i/


#15 Ссылка на это сообщение Vivec

Vivec
  • Авантюрист
  • 162 сообщений

Отправлено

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

#16 Ссылка на это сообщение IgorLutiy

IgorLutiy
  • Выбраковщик
  • 1 074 сообщений
  •    

Отправлено

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

Пиши :dwarf: А по поводу диалогов - туторов есть целая куча (для Обливиона и один для Фаллаута), там ничего сложного нет (если конечно не придумать что-то уж сильно заумное :bravo:

Мир друзьям - смерть врагам!

Мой новый сайт-блог: https://igorlutiy.pp.ua - как некое подведение итогов моей жизни в интернете

Мой профиль на Самиздате: http://samlib.ru/l/ljutyj_i/


#17 Ссылка на это сообщение Vault-Anton

Vault-Anton
  • Авантюрист
  • 157 сообщений

Отправлено

SHORT DoOnce
SHORT RunScript


SHORT LockpickSkill
SHORT ExplosivesSkill
SHORT Usewrench
SHORT LuckSkillBase
SHORT ColaRandom
SHORT DamageValue
SHORT ChanceToUnlock
SHORT ChanceToJam
SHORT ChanceOfInjury
SHORT LuckFactor
SHORT HasFailed
SHORT DamageRange
SHORT PlayerHealth
SHORT RepairSkill
SHORT Wrench
SHORT Handuse
SHORT Dollar
SHORT  Button
Short	NukaVending1

BEGIN OnLoad
   SET LuckFactor TO 3
  END



Begin gamemode

  Set Button to GetButtonPressed
   SET Handuse TO (100-((LuckSkillBase * LuckFactor) + Player.GetActorValue Agility)) 
   SET Usewrench TO (LockpickSkill + (RepairSkill * 3)) / 5
   SET LuckSkillBase TO (Player.GetActorValue Luck)  
  sET ChanceOfInjury TO (100 - (RepairSkill + (LuckSkillBase * LuckFactor)))
			   SET DamageRange TO ChanceOfInjury;same type of roll, but there will still be 2 rolls
SET Wrench TO (Player.GetItemCount Wrench01 )
			   SET PlayerHealth TO (Player.GetActorValue Health)
if runscript == 1
ShowMessage 1Nucka, Usewrench, Handuse, Wrench, Dollar, ChanceToJam, ChanceOfInjury, DamageRange, PlayerHealth
			   SET RunScript TO 0
			ELSE
			   Activate
			ENDIF
		 ELSE
			Activate
		 ENDIF
	  ELSE
		 Activate
	  ENDIF
   ELSE
	  Activate
   ENDIF
END



Begin gamemode
 IF button == 0
	  IF Usewrench > GetRandomPercent   
			   SET ColaRandom TO Usewrench * (GetRandomPercent + 1) / 100
			   Player.Additem NukaCola 1 * ColaRandom
			Player.RemoveItem Wrench01 1 1
			RewardXP 5
 SET RunScript TO 1  

	ElseIF Usewrench < GetRandomPercent
			   SET ColaRandom TO Usewrench * (GetRandomPercent + 1) / 100
			  Player.damageActorValue Health DamageRange
			 Player.Say Hit
			Player.RemoveItem Wrench01 1 1
 SET RunScript TO 1 
			ShowMessage 1NuckaDamagedMessage DamageValue
	  ElseIf wrench == 0
	  showmessage  1wrencyno
  
 SET RunScript TO 1
				  
			ENDIF
ENDIF
end

Begin gamemode
IF Button == 1		  
		IF Handuse > GetRandomPercent
			   SET ColaRandom TO Handuse * (GetRandomPercent + 1) / 100
			   Player.Additem NukaCola 1 * ColaRandom
				RewardXP 5
 SET RunScript TO 1
	ElseIF Handuse < GetRandomPercent
			   SET ColaRandom TO Handuse * (GetRandomPercent + 1) / 100
			  Player.damageActorValue Health DamageRange
			 Player.Say Hit
			ShowMessage 1NuckaDamagedMessage DamageValue
 SET RunScript TO 1				   
			ENDIF
ENDIF
end

begin gamemode
IF Button == 2
Set Dollar To (Player.GetItemCount 11PrewarMoney)
If Dollar >= 1
Player.additem NukaCola 1
Player.removeitem 11PrewarMoney 1
 SET RunScript TO 1
if dollar < 1
 ShowMessage 1Doolarno
 SET RunScript TO 1 
Endif
Endif
endif
 End

[/code]

Помогите делаю скрипт, чтобы подошёл гг к автомату с ядер колой, перед ним сплыло сообщение, с показателями и функциями
Взломать автомат (Использует гаечный клю для вскрытия)
Залезть рукой
Использовать доллар чтобы купить колу
Сдеала, подхожу, активирую перевый вариант беру ГГ дохнет или начинает бесконечно повторять действие, со всторым тоже самое и третье, почему то также работает,
А если покину какую нибудь локацию у героя отнимаются жизни и он дохнет
Помогите срипт исправить пожалуйста
Пончик без дырки - это пирожок!!!

#18 Ссылка на это сообщение rus-ip

rus-ip
  • Новенький
  • 1 сообщений

Отправлено

Здравствуйте! Помогите пожалуйста написать скрип для switch'ера, который при активации будет включать каждую лампочку по отдельности с интервалом в 1 сек. и воспроизводя звук OBJSwitchLights2D.
--- в скриптах полный новичок, сам разобраться не смог.

#19 Ссылка на это сообщение d_ivanov

d_ivanov
  • Талант
  • 240 сообщений
  •  

Отправлено

Vault-Anton

Я бы для начала попробовал все используемые gamemode блоки объединить в один. Как минимум проблема отнятия жизни у ГГ при смене локации возникает из-за этого разделения: во втором блоке gamemode проверяется условие button == 0. Это условие выполняется сразу при входе в gamemode, даже без показа всякого сообщения и использования GetButtonPressed (т.е. до того, как ГГ вообще дотронулся до автомата) Так что рекомендую проделать следующее:
а) объединить все блоки gamemode в один
б) добавить некий флаг, означающий, что гг активировал автомат и должен сделать выбор (чтобы предотвратить описанное выше срабатывание по нулевому значению button)
в) выровнять строки скрипта, непросто ориентироваться в коде, когда блоки не выровнены.


P.S. Щит, надо смотреть на даты сообщений *бьется об стену*. Ладно, оставлю, вдруг кому пригодится.

#20 Ссылка на это сообщение Demolir.uptar

Demolir.uptar
  • Новенький
  • 22 сообщений

Отправлено

Реанимирую тему таким вопросом:

В скриптовом языке Oblivion есть такая функция как GetActiveMenuSelection (OBSE), существует ли аналогичная функция для Fallout, и если да, то как она работает?




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых