MS01CrowdScript — технический файл, который относится к жителям Большого Города и который можно посмотреть в G.E.C.K..
Содержимое[]
scn MS01CrowdScript
- used to get the crowd of townsfolk to mob talk at once in a natural but controlled way
- note because this script is not being passed any variables set on any of the actors "SayToDone" blocks... don't use this script to generate crowd babble unless you know they aren't talking
short init ;doOnce - set up your variables here
- why use ref variables? So that if I need to I can always copy this stuff into another quest easier
ref speaker1Ref
ref speaker2Ref
ref speaker3Ref
ref speaker4Ref
ref speaker5Ref
ref speaker6Ref
ref speaker7Ref
ref speaker8Ref
- who should the speaker sayTo when speaking 0 = no one in particular, player = player, reference is the reference to look at (can be a reference variable if set before you set this variable)
ref speaker1SayToTargetRef
ref speaker2SayToTargetRef
ref speaker3SayToTargetRef
ref speaker4SayToTargetRef
ref speaker5SayToTargetRef
ref speaker6SayToTargetRef
ref speaker7SayToTargetRef
ref speaker8SayToTargetRef
float speaker1StartTimeMin ;the soonest the actor will exclaim something after "crowd say mode" is triggered
float speaker1StartTimeMax ;the latest the actor will exclaim something after "crow say mode" is triggered
float speaker2StartTimeMin ;the soonest the actor will exclaim something after "crowd say mode" is triggered
float speaker2StartTimeMax ;the latest the actor will exclaim something after "crow say mode" is triggered
float speaker3StartTimeMin ;the soonest the actor will exclaim something after "crowd say mode" is triggered
float speaker3StartTimeMax ;the latest the actor will exclaim something after "crow say mode" is triggered
float speaker4StartTimeMin ;the soonest the actor will exclaim something after "crowd say mode" is triggered
float speaker4StartTimeMax ;the latest the actor will exclaim something after "crow say mode" is triggered
float speaker5StartTimeMin ;the soonest the actor will exclaim something after "crowd say mode" is triggered
float speaker5StartTimeMax ;the latest the actor will exclaim something after "crow say mode" is triggered
float speaker6StartTimeMin ;the soonest the actor will exclaim something after "crowd say mode" is triggered
float speaker6StartTimeMax ;the latest the actor will exclaim something after "crow say mode" is triggered
float speaker7StartTimeMin ;the soonest the actor will exclaim something after "crowd say mode" is triggered
float speaker7StartTimeMax ;the latest the actor will exclaim something after "crow say mode" is triggered
float speaker8StartTimeMin ;the soonest the actor will exclaim something after "crowd say mode" is triggered
float speaker8StartTimeMax ;the latest the actor will exclaim something after "crow say mode" is triggered
short speaker1Spoke ; 0 = unset, 1 = spoke, - 1 = ready to speak again
short speaker2Spoke ; 0 = unset, 1 = spoke, - 1 = ready to speak again
short speaker3Spoke ; 0 = unset, 1 = spoke, - 1 = ready to speak again
short speaker4Spoke ; 0 = unset, 1 = spoke, - 1 = ready to speak again
short speaker5Spoke ; 0 = unset, 1 = spoke, - 1 = ready to speak again
short speaker6Spoke ; 0 = unset, 1 = spoke, - 1 = ready to speak again
short speaker7Spoke ; 0 = unset, 1 = spoke, - 1 = ready to speak again
short speaker8Spoke ; 0 = unset, 1 = spoke, - 1 = ready to speak again
float timer
short crowdSay ;0 = unset, 1 = ready to start talking, 2 = talking
Begin GameMode
if init == 0
;set up your variables here -- also don't forget to change which topic people are say/sayTo'ing... do a text search for ";say topic" to find them below
set speaker1Ref to RedRef
set speaker1StartTimeMin to 1
set speaker1StartTimeMax to 1
set speaker2Ref to FlashRef
set speaker2StartTimeMin to 4
set speaker2StartTimeMax to 4
set speaker3Ref to PappyRef
set speaker3StartTimeMin to 7
set speaker3StartTimeMax to 7
set speaker4Ref to BittercupRef
set speaker4StartTimeMin to 9
set speaker4StartTimeMax to 9
set speaker5Ref to StickyRef
set speaker5StartTimeMin to 15
set speaker5StartTimeMax to 15
set speaker6Ref to ShortyRef
set speaker6StartTimeMin to 11
set speaker6StartTimeMax to 11
set speaker7Ref to KimbaRef
set speaker7StartTimeMin to 12
set speaker7StartTimeMax to 12
set speaker8Ref to TimebombRef
set speaker8StartTimeMin to 13
set speaker8StartTimeMax to 13
set speaker1SayToTargetRef to speaker2Ref
set speaker2SayToTargetRef to speaker3Ref
set speaker3SayToTargetRef to speaker4Ref
set speaker4SayToTargetRef to speaker5Ref
set speaker5SayToTargetRef to speaker6Ref
set speaker6SayToTargetRef to speaker7Ref
set speaker7SayToTargetRef to speaker8Ref
set speaker8SayToTargetRef to speaker1Ref
set init to 1
endif
if crowdSay == 1
setQuestDelay MS01Crowd .01
set crowdSay to 2
set timer to 0
elseif crowdSay == 2
set timer to timer + getSecondsPassed
if speaker1Ref.getDead == 1
set speaker1spoke to 999
endif
if speaker2Ref.getDead == 1
set speaker2spoke to 999
endif
if speaker3Ref.getDead == 1
set speaker3spoke to 999
endif
if speaker4Ref.getDead == 1
set speaker4spoke to 999
endif
if speaker5Ref.getDead == 1
set speaker5spoke to 999
endif
if speaker6Ref.getDead == 1
set speaker6spoke to 999
endif
if speaker7Ref.getDead == 1
set speaker7spoke to 999
endif
if speaker8Ref.getDead == 1
set speaker8spoke to 999
endif
if speaker1spoke <= 0
if timer >= speaker1StartTimeMax
set speaker1spoke to 1
if speaker1SayToTargetRef == 0
speaker1Ref.say MS01CrowdSay ;say topic
else
speaker1Ref.sayTo speaker1SayToTargetRef MS01CrowdSay ;say topic
endif
endif
elseif speaker2spoke <= 0
if timer >= speaker2StartTimeMax
set speaker2spoke to 1
if speaker2SayToTargetRef == 0
speaker2Ref.say MS01CrowdSay ;say topic
else
speaker2Ref.sayTo speaker2SayToTargetRef MS01CrowdSay ;say topic
endif
endif
elseif speaker3spoke <= 0
if timer >= speaker3StartTimeMax
set speaker3spoke to 1
if speaker3SayToTargetRef == 0
speaker3Ref.say MS01CrowdSay ;say topic
else
speaker3Ref.sayTo speaker3SayToTargetRef MS01CrowdSay ;say topic
endif
endif
elseif speaker4spoke <= 0
if timer >= speaker4StartTimeMax
set speaker4spoke to 1
if speaker4SayToTargetRef == 0
speaker4Ref.say MS01CrowdSay ;say topic
else
speaker4Ref.sayTo speaker4SayToTargetRef MS01CrowdSay ;say topic
endif
endif
elseif speaker5spoke <= 0
if timer >= speaker5StartTimeMax
set speaker5spoke to 1
if speaker5SayToTargetRef == 0
speaker5Ref.say MS01CrowdSay ;say topic
else
speaker5Ref.sayTo speaker5SayToTargetRef MS01CrowdSay ;say topic
endif
endif
elseif speaker6spoke <= 0
if timer >= speaker6StartTimeMax
set speaker6spoke to 1
if speaker6SayToTargetRef == 0
speaker6Ref.say MS01CrowdSay ;say topic
else
speaker6Ref.sayTo speaker6SayToTargetRef MS01CrowdSay ;say topic
endif
endif
elseif speaker7spoke <= 0
if timer >= speaker7StartTimeMax
set speaker7spoke to 1
if speaker7SayToTargetRef == 0
speaker7Ref.say MS01CrowdSay ;say topic
else
speaker7Ref.sayTo speaker7SayToTargetRef MS01CrowdSay ;say topic
endif
endif
elseif speaker8spoke <= 0
if timer >= speaker8StartTimeMax
set speaker8spoke to 1
if speaker8SayToTargetRef == 0
speaker8Ref.say MS01CrowdSay ;say topic
else
speaker8Ref.sayTo speaker8SayToTargetRef MS01CrowdSay ;say topic
endif
endif
endif
if speaker1spoke >= 1 && speaker2spoke >= 1 && speaker3spoke >= 1 && speaker4spoke >= 1 && speaker5spoke >= 1 && speaker6spoke >= 1 && speaker7spoke >= 1 && speaker8spoke >= 1
set crowdSay to 0
set speaker1spoke to -1
set speaker2spoke to -1
set speaker3spoke to -1
set speaker4spoke to -1
set speaker5spoke to -1
set speaker6spoke to -1
set speaker7spoke to -1
set speaker8spoke to -1
set timer to 0
if MS01.townCheer == 1
set MS01.townCheer to - 1
endif
setQuestDelay MS01Crowd 0 ;set it back to the default
endif
endif
End