Убежище
Убежище
Advertisement
Убежище

MS01CrowdScript — технический файл, который относится к жителям Большого Города и который можно посмотреть в G.E.C.K..

Содержимое[]

Transcript

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

Advertisement