クイズゲーム用テンプレートサンプルコード

「クイズゲーム用テンプレート」
で使用されているスクリプトコードです。
ダウンロードはこちらから

  1. //皐月祭翔愛祭新規クイズゲーム用テンプレート
  2. //Ver 5-2014-06-15_視聴覚室用
  3. //———————–
  4. // はじめに
  5. //———————–
  6. // 先頭が // で始まる行はコメントです。
  7. // スクリプトを実行する上では、コメントは無視されます。
  8. //
  9. // 「■■ 編集ここから ■■」~「■■ 編集ここまで ■■」
  10. // の間だけを書き換えてください。
  11. // 「★★置換:」~「:ここまで☆☆」は、
  12. // ★★から☆☆まで(★や☆を含みます)を、指定した内容で
  13. // 置き換えてください。
  14. //
  15. //
  16. //
  17. //———————–
  18. // スクリプト情報メモ
  19. //———————–
  20. //ゲームクエストコード[]  
  21. //ゲームスクリプト番号[]  
  22. //
  23. // クエストコードは、普通は使用しません。
  24. // ゲームスクリプト番号は、編集室のガイドタブに書かれている
  25. // スクリプト編集の[]の中身です。
  26. // 後々必要になる場合がありますので、コメントとして記述しておくと
  27. // 良いかと思います。
  28. //———————–
  29. // 変数の使いみち
  30. //———————–
  31. //たとえばlf[15]が何に使われているかをメモしておくと、
  32. //後で見直す際に便利です。特に、他人の作ったスクリプトを見るのには
  33. //このような記述があると便利なので書いています。
  34. //3ヶ月後の自分は「他人」です。
  35. //lf[0]~lf[9]は、一時領域として使用し、重要な値を保存しないこと
  36. //としておくと後々便利。
  37. //lf[0]:臨時、一時利用
  38. //lf[1]:臨時、一時利用
  39. //lf[2]:臨時、一時利用
  40. //lf[3]:臨時、一時利用
  41. //lf[5]:臨時、一時利用
  42. //lf[6]:臨時、一時利用
  43. //lf[7]:臨時、一時利用
  44. //lf[8]:臨時、一時利用
  45. //lf[9]:臨時、一時利用
  46. //
  47. //lf[15]:出際していない問題を探すのにかかった回数
  48. //lf[16]:出題数
  49. //lf[17]:正解数
  50. //lf[18]:間違い数
  51. //lf[19]:時間切れ数
  52. //lf[20]:(空き)
  53. //lf[21]~:問題を出題したかのフラグ
  54. Level:0
  55. //—————————————————————-
  56. //マップロック:場所や時期による、スクリプトを実行してよいかの制限
  57. //—————————————————————-
  58. Segment:40
  59. //編集室かどうかをチェック
  60. //編集室ならSegment:60に移動する(シーズンロックも飛ばしてプレイ可能にする)
  61. lf[0]=Avatar.checkMap:E_
  62. ->Segment:60;(lf[0]==1)
  63. //自団体の出展用多目的教室かどうかチェック
  64. //■■ 編集ココから: 「X02_123-01234.1」は、自団体の出展用ブース  ■■
  65. //■■ 多目的教室をあらわす番号です。マップコードと呼びます。    ■■
  66. //■■ 自団体の出展用ブースのマップコードに書き換えてください。   ■■
  67. //■■ 判らなければ生徒会に問い合わせるか編集をお願いしてください。 ■■
  68. lf[0]=Avatar.checkMap:X02_123-01234.1
  69. //■■ 編集ココまで ■■
  70. //自団体の出展用ブースならSegment:50に移動する(皐月祭翔愛祭の時期か?)
  71. ->Segment:50;(lf[0]==1)
  72. //自団体の出展用ブース以外でチケットを使用した場合に表示されるメッセージです。
  73. //「決められた場所で使ってね」だと、どのブースに行けばよいか判らないので
  74. //自団体の名前、出展名などを表示したほうが親切です。
  75. //■■ 「」の中に公式部/同好会の名前を記入してください。      ■■
  76. //■■ 書いたメッセージの次に、必ず空行を入れてください。      ■■
  77. Message:
  78. 「★★置換:公式部/同好会の名前:ここまで☆☆」の多目的教室で使ってね
  79. ->exit
  80. //——————————————————————
  81. //シーズンロック:
  82. //  ミニゲームは皐月祭、翔愛祭、アンコールイベント中しか遊べません
  83. //——————————————————————
  84. Segment:50
  85. //翔愛祭(準備)期間中か否かチェック
  86. //翔愛祭(準備)期間中であればミニゲームで遊べる
  87. lf[0]=getEnv:AUTUMNFES
  88. ->Segment:60;(lf[0]>=1)
  89. //皐月祭(準備)期間中か否かチェック
  90. //皐月祭(準備)期間中であればミニゲームで遊べる
  91. lf[0]=getEnv:SPRINGFES
  92. ->Segment:60;(lf[0]>=1)
  93. //ユーザーのアンコールイベント中か否かチェック
  94. //ユーザーのアンコールイベント中であればミニゲームで遊べる
  95. //lf[0]=getEnv:USEREVENT
  96. //->Segment:60;(lf[0]==1)
  97. Message:
  98. このチケットはイベント期間専用です
  99. ->exit
  100. //—————-
  101. //ミニゲーム開始
  102. //—————-
  103. Segment:60
  104. Segment:100
  105. //いまからミニゲームを始めるよと言う宣言
  106. Avatar.scriptMode
  107. //ついていく を解除
  108. Avatar.CancelJoin
  109. // Avatar.Menu: という命令は、プレイヤーの顔を出してメニューを表示し、
  110. // 提示した選択肢から一つを選んでもらうためのものです。
  111. // 
  112. //
  113. // Avatar.Menu: <=メニューをだす命令
  114. // ゲームをしようかな・・・ <=プレイヤーのせりふとして表示される文章
  115. // <=選択肢その1 (で囲みます)
  116. // ->Segment:500 <=選択肢その1が選ばれたら
  117. // ここで指定したセグメントに飛びます
  118. // <=選択肢その2 (で囲みます)
  119. // ->Segment:150 <=選択肢その2が選ばれたら
  120. // ここで指定したセグメントに飛びます
  121. // <=選択肢その3 (で囲みます)
  122. // ->Segment:190 <=選択肢その3が選ばれたら
  123. // ここで指定したセグメントに飛びます
  124. //
  125. //
  126. Avatar.Menu:
  127. クイズをしようかな・・・
  128. <する>
  129. ->Segment:500
  130. <しない>
  131. ->Segment:150
  132. <ルールの説明をみる>
  133. ->Segment:190
  134. //—————————
  135. // やめる
  136. //—————————
  137. Segment:150
  138. //プレイヤーに喋らせる場合の命令です。
  139. //プレイヤーの顔が出る以外は、
  140. //Message: と同じです。
  141. //喋らせるメッセージの後には必ず空行が必要なのも同じです。
  142. Avatar:
  143. 今はやめておこう…
  144. //この上には必ず空行を書くこと
  145. Segment:160
  146. //前景消去
  147. EV:Blank
  148. //背景消去
  149. BG:Blank
  150. ->exit
  151. //—————————
  152. // ルールの説明
  153. //—————————
  154. Segment:190
  155. ls[0]=Avatar.myCall
  156. ls[1]=Avatar.callName1
  157. ls[2]=Avatar.callName2
  158. ls[3]=Avatar.callName3
  159. //■■ 編集ココから:必要ならクイズの説明を書いてください。    ■■
  160. //■■ Message:と書かれた行の次の行から、説明を書きます。     ■■
  161. //■■ 説明は3行まで書けます。一行は30文字程度にしてください。 ■■
  162. //■■ 書いた説明の後には空行を【 必ず 】入れてください。    ■■
  163. Message:
  164. このゲーム「クイズテンプレート」は、スクリプト研究所が作成しました。
  165. //メッセージの後には空行必須
  166. Message:
  167. 使用されている命令のほとんどは、スクリプト研究所ブログ
  168. (翔愛学園公式ブログ「公式部活と同好会」のなかにあります)
  169. で解説しています。
  170. //メッセージの後には空行必須
  171. Message:
  172. 「スクリプト研究所 記事一覧(目次)」から、該当記事を探してください。
  173. 公式部の「スクリプト研究所」に入部して、質問していただいてもかまいません。
  174. //メッセージの後には空行必須
  175. Message:
  176. それでは良いクイズゲームが出来ますように・・・。
  177. //メッセージの後には空行必須
  178. //■■ 編集ここまで ■■
  179. //表示したメッセージを消去
  180. Message.clear
  181. //2秒待機
  182. Wait:2000
  183. ->Segment:100
  184. //ヘルプここまで——最初のメニューに戻ります。
  185. Segment:500
  186. //■ゲーム開始・スタート部分
  187. //アバター名称の共通取得
  188. ls[0]=Avatar.myCall
  189. ls[1]=Avatar.callName1
  190. ls[2]=Avatar.callName2
  191. ls[3]=Avatar.callName3
  192. //チケットの消費
  193. World.useCallItem
  194. ->Segment:10000
  195. //=============================
  196. //  クイズ終了時
  197. //=============================
  198. Segment:9000
  199. Message:
  200. おつかれさまでした。あなたの成績は
  201. 正解;lf[17];問、誤答;lf[18];問でした。
  202. //Message:1 のようにMessage:の後に数字を書くと、
  203. //秒単位でその数字とおなじだけ時間がたつと
  204. //自動的にクリックしたことになります。
  205. //(次の命令に進みます)
  206. Message:1
  207. さて結果は・・・・
  208. //ドコドコドコドコ・・・・
  209. //という効果音を鳴らす
  210. SE:drumroll01.mp3
  211. //2秒待つ
  212. wait:2000
  213. //正解が3問以上なら合格
  214. ->Segment:9100;(lf[17]>=3)
  215. ->Segment:9200
  216. //合格時
  217. Segment:9100
  218. //ファンファーレの効果音を鳴らす
  219. SE:fanfare01.mp3
  220. Message:
  221. おめでとう、合格です!!
  222. ->Segment:9500
  223. Segment:9200
  224. //
  225. SE:shock03.mp3
  226. Message:
  227. 残念、不合格です・・・・・。
  228. ->Segment:9500
  229. Segment:9500
  230. Message:
  231. お疲れ様でした。またの挑戦をお待ちしております。
  232. //ゲーム終了
  233. ->Segment:160
  234. //=============================
  235. //
  236. //  ここからクイズの問題
  237. //
  238. //=============================
  239. //飛び先用にセグメント番号だけ用意
  240. Segment:10000
  241. //クイズ用初期化:問題を「未使用」に設定
  242. Segment:11000
  243. lf[15]=0
  244. lf[16]=0
  245. lf[17]=0
  246. lf[18]=0
  247. lf[19]=0
  248. lf[20]=0
  249. lf[21]=0
  250. lf[22]=0
  251. lf[23]=0
  252. lf[24]=0
  253. lf[25]=0
  254. lf[26]=0
  255. lf[27]=0
  256. lf[28]=0
  257. lf[29]=0
  258. lf[30]=0
  259. lf[31]=0
  260. ->Segment:12300
  261. //—————-
  262. //正解の場合
  263. //—————-
  264. Segment:11500
  265. //出題数と正解数に1を加えます
  266. lf[16]=flagAdd:lf[16],1
  267. lf[17]=flagAdd:lf[17],1
  268. Message:1
  269. 正解!
  270. //メッセージの後には空行必須
  271. //次の問題へ
  272. ->Segment:12000
  273. //—————-
  274. //間違えた場合
  275. //—————-
  276. Segment:11700
  277. //出題数と誤答数に1を加えます
  278. lf[16]=flagAdd:lf[16],1
  279. lf[18]=flagAdd:lf[18],1
  280. Message:1
  281. 残念。
  282. //メッセージの後には空行必須
  283. //次の問題へ
  284. ->Segment:12000
  285. //—————-
  286. //時間切れの場合
  287. //—————-
  288. Segment:11900
  289. //出題数と時間切れ回数に1を加えます
  290. lf[16]=flagAdd:lf[16],1
  291. lf[19]=flagAdd:lf[19],1
  292. Message:1
  293. 時間切れ・・・
  294. //メッセージの後には空行必須
  295. //次の問題へ
  296. ->Segment:12000
  297. //—————-
  298. //次の問題へ
  299. //—————-
  300. Segment:12000
  301. //未使用の問題を探した回数をリセット
  302. lf[15]=0
  303. //5問出題したら終了
  304. ->Segment:9000;(lf[16]>=5)
  305. //次の問題を探す:出題していない問題
  306. Segment:12030
  307. lf[15]=flagAdd:lf[15],1
  308. //問題を探すのに あまりにも時間がかかるようなら使い切ったとみなす
  309. ->Segment:9000;(lf[15]>10)
  310. Segment:12300
  311. //問題をランダムに選ぶ
  312. //■■ 編集ココから:用意した問題数が 10問より少なければ、     ■■
  313. //■■ 「」の行とその下の「->Segment:数字」の行を組にして    ■■
  314. //■■ 上から用意した問題の数と同じだけ残してください。      ■■
  315. //■■ たとえば5問しか問題を用意しなかった場合には、下記のように  ■■
  316. //■■ なります。                         ■■
  317. //■■ ■■
  318. //■■ randmenu: ■■
  319. //■■ 分岐内容←この行は表示されませんが必須です ■■
  320. //■■ ■■
  321. //■■ ->Segment:12500 ■■
  322. //■■ ■■
  323. //■■ ->Segment:12510 ■■
  324. //■■ ■■
  325. //■■ ->Segment:12520 ■■
  326. //■■ ■■
  327. //■■ ->Segment:12530 ■■
  328. //■■ ■■
  329. //■■ ->Segment:12540 ■■
  330. //■■ ■■
  331. //■■ //■■ 編集ココまで ■■ ■■
  332. //■■ ■■
  333. //■■ ■■
  334. randmenu:
  335. 分岐内容←この行は表示されませんが必須です
  336. <1>
  337. ->Segment:12500
  338. <1>
  339. ->Segment:12510
  340. <1>
  341. ->Segment:12520
  342. <1>
  343. ->Segment:12530
  344. <1>
  345. ->Segment:12540
  346. <1>
  347. ->Segment:12550
  348. <1>
  349. ->Segment:12560
  350. <1>
  351. ->Segment:12570
  352. <1>
  353. ->Segment:12580
  354. <1>
  355. ->Segment:12590
  356. <1>
  357. ->Segment:12600
  358. //■■ 編集ココまで ■■
  359. //===================================
  360. //ここからクイズの問題:問題の書き方は以下のとおりです。
  361. //===================================
  362. //■■  
  363. //■■  Menu:10,1というのは、制限時間10秒、選択肢をランダムに入れ替えて
  364. //■■  メニューを表示するという指定です。
  365. //■■  
  366. //■■  Menu:10,1 を Menu:20,1 に書き換えると、
  367. //■■  1問の制限時間が20秒になります。
  368. //■■  
  369. //■■  実際のメニュー文はこんなふうに書きます。
  370. //■■  選択肢は6個までかけますが、必ず一番上の選択肢に
  371. //■■  正解となるものを書いてください。
  372. //■■  
  373. //■■  Menu:10,1
  374. //■■  生徒会副会長は誰?
  375. //■■  
  376. //■■  ->Segment:11500
  377. //■■  
  378. //■■  ->Segment:11700
  379. //■■  
  380. //■■  ->Segment:11700
  381. //■■  
  382. //■■  ->Segment:11700
  383. //■■  
  384. //■■  ->Segment:11700
  385. //■■  
  386. //■■  ->Segment:11700
  387. //■■  
  388. //■■  ->Segment:11900
  389. //■■  ↑
  390. //■■  これは時間切れになったときに実行されます。消さないでね。
  391. //■■  
  392. //■■  
  393. //■■  もし選択肢が3つしかなければ、このように書きます。
  394. //■■  
  395. //■■  Menu:10,1
  396. //■■  生徒会副会長は誰?
  397. //■■  
  398. //■■  ->Segment:11500
  399. //■■  
  400. //■■  ->Segment:11700
  401. //■■  
  402. //■■  ->Segment:11700
  403. //■■  
  404. //■■  ->Segment:11900
  405. //■■  
  406. //■■  選択肢の数にかかわらず、問題文の直後には必ず正解を、
  407. //■■  選択肢の直後には空行をあけて「->Segment:11900」を
  408. //■■  それぞれ記述してください。
  409. //■■  
  410. Segment:12500
  411. ->Segment:12000;(lf[21]==1)
  412. lf[21]=1
  413. //—-問題0
  414. Menu:10,1
  415. 翔愛学園で第二期の生徒会副会長は誰?
  416. <如月アリサ>
  417. ->Segment:11500
  418. <如月アサリ>
  419. ->Segment:11700
  420. <如月ナツキ>
  421. ->Segment:11700
  422. <如月ヤヨイ>
  423. ->Segment:11700
  424. ->Segment:11900
  425. //——————————-
  426. Segment:12510
  427. ->Segment:12000;(lf[22]==1)
  428. lf[22]=1
  429. //—-問題1
  430. Menu:10,1
  431. 翔愛学園の理事長先生。間違っているのは?
  432. <髪の毛が七三わけ>
  433. ->Segment:11500
  434. <話が長い>
  435. ->Segment:11700
  436. <名前は福之神ゑび蔵>
  437. ->Segment:11700
  438. <縁起の良いものが大好き>
  439. ->Segment:11700
  440. ->Segment:11900
  441. //——————————-
  442. Segment:12520
  443. ->Segment:12000;(lf[23]==1)
  444. lf[23]=1
  445. //—-問題2
  446. Menu:10,1
  447. 翔愛学園の理数系科目を担当している先生。間違っているのは?
  448. <名前は山本達矢>
  449. ->Segment:11500
  450. <若く見える>
  451. ->Segment:11700
  452. <理論派>
  453. ->Segment:11700
  454. <専門は化学>
  455. ->Segment:11700
  456. ->Segment:11900
  457. //——————————-
  458. Segment:12530
  459. ->Segment:12000;(lf[24]==1)
  460. lf[24]=1
  461. //—-問題3
  462. Menu:10,1
  463. 翔愛学園の柏木先生。正しいのは?
  464. <見た目どおりの熱血教師>
  465. ->Segment:11500
  466. <名前は寅次郎>
  467. ->Segment:11700
  468. <学生時代は陸上の選手だった>
  469. ->Segment:11700
  470. <運動が苦手>
  471. ->Segment:11700
  472. ->Segment:11900
  473. //——————————-
  474. Segment:12540
  475. ->Segment:12000;(lf[25]==1)
  476. lf[25]=1
  477. //—-問題4
  478. Menu:10,1
  479. 翔愛学園の夕凪先生。正しい名前は?
  480. <夕凪 桜>
  481. ->Segment:11500
  482. <夕凪 楓>
  483. ->Segment:11700
  484. <夕凪 椛>
  485. ->Segment:11700
  486. <夕凪 桃>
  487. ->Segment:11700
  488. ->Segment:11900
  489. //——————————-
  490. Segment:12550
  491. ->Segment:12000;(lf[26]==1)
  492. lf[26]=1
  493. //—-問題5
  494. Menu:10,1
  495. 購買部のお姉さん、タマちゃんの名前は?
  496. <玉野みるく>
  497. ->Segment:11500
  498. <玉野くるみ>
  499. ->Segment:11700
  500. <王野みるく>
  501. ->Segment:11700
  502. <王野くるみ>
  503. ->Segment:11700
  504. ->Segment:11900
  505. //——————————-
  506. Segment:12560
  507. ->Segment:12000;(lf[27]==1)
  508. lf[27]=1
  509. //—-問題6
  510. Menu:10,1
  511. 学園の購買部で売っていないものは?
  512. <コーヒー>
  513. ->Segment:11500
  514. <学園の制服>
  515. ->Segment:11700
  516. <雑巾とバケツ>
  517. ->Segment:11700
  518. <通知表>
  519. ->Segment:11700
  520. ->Segment:11900
  521. //——————————-
  522. Segment:12570
  523. ->Segment:12000;(lf[28]==1)
  524. lf[28]=1
  525. //—-問題7
  526. Menu:10,1
  527. 日本の首都は?
  528. <東京>
  529. ->Segment:11500
  530. <北京>
  531. ->Segment:11700
  532. <南京>
  533. ->Segment:11700
  534. <京都>
  535. ->Segment:11700
  536. ->Segment:11900
  537. //——————————-
  538. Segment:12580
  539. ->Segment:12000;(lf[29]==1)
  540. lf[29]=1
  541. //—-問題8
  542. Menu:10,1
  543. 日本の道路の、車用の信号機。一番右は?
  544. <赤>
  545. ->Segment:11500
  546. <黄>
  547. ->Segment:11700
  548. <青>
  549. ->Segment:11700
  550. <緑>
  551. ->Segment:11700
  552. ->Segment:11900
  553. //——————————-
  554. Segment:12590
  555. ->Segment:12000;(lf[30]==1)
  556. lf[30]=1
  557. //—-問題9
  558. Menu:10,1
  559. 日本でもっとも高い山は?
  560. <富士山>
  561. ->Segment:11500
  562. <天保山>
  563. ->Segment:11700
  564. <槍ヶ岳>
  565. ->Segment:11700
  566. <北岳>
  567. ->Segment:11700
  568. ->Segment:11900
  569. //——————————-

クイズゲーム用テンプレートサンプルコード” に対する意見

  1. ピンバック: スクリプト研究所 記事一覧(目次) | スクリプト研究所

  2. ピンバック: 2015翔愛祭 スライド・ミニゲーム製作者向けまとめ | スクリプト研究所

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です