スクリプト Q&A

特定のアイテムを持っているかチェックしたい。

//持っていれば1がセットされる
//(または、以前取得していれば1がセットされる)
lf[0]=Avatar.checkAllItem:ABC12354(ABC12354はアイテムコード)

弓道などで使われる照準が動く機能ですが、照準の移動する範囲を(画面全体ではなく)一定の範囲に制限することは可能でしょうか?

A:ANIMRANDコマンドですが、矩形に限定されますが、x1,y1,x2,y2で範囲設定されると思います

チケットの残り回数を取得したい。

lf[0]=World.countCallItem
で取得してみてください。この命令は、「使う」コマンドを発行したチケットの残数を取得します。従って、編集室のプレイボタンからは機能しません。実際にチケットを使ってお試しください。

マップチェックやシーズンチェックはどのように記述したらよろしいでしょうか?

運営:マップチェックやシーズンチェックも生徒会に作業依頼して頂いて大丈夫です。

着替えれば取れるアイテム(小麦粉とかイカスミや飴食い競争の白い粉など)を顔に付けるコマンドを教えてください。

運営:特殊コマンドは掲示板に書くのは好ましくありませんので、こちらでコードを埋めます。
スクリプトに「ここでアイテムコードを装着」など、わかりやすいコメントを書き込んで、生徒会宛に記述依頼をしてください。

スクリプトからアイテムを配布する場合のAPIの挙動を教えて下さい。

Avatar.addItem:アイテムID → 再取得制限無しで配布
Avatar.addItem:アイテムID,2 → 一人一個まで取得可能、消費アイテムの場合には使用すれば取得可能で配布
Avatar.addItem:アイテムID,6 → 一人二個まで取得可能、で配布
になります。
消費アイテム→無制限取得可 または一人一個制限付き(パラメータは2、食べたら貰える)
アクセサリ→一人一個制限付き(パラメータは2) または一人二個制限付き(パラメータは6) 
という設定を変更しないようにお願いします。
条件指定により再取得できなかった場合は、無反応となりますが、
lf[0]=Avatar.AddItem:ITEM_CD_0000_00,2
のように記述すると、取得できればlf[0]に1が戻ります。
従って、(lf[0]!=1)判定することで、取得できなかった場合のメッセージ等へ分岐させることは可能です。

アップロードができません。「413 Request Entity Too Large」というエラーコードが出てきてしまうのですが

運営:ファイルサイズが大きいのだと思います。こちらでアップロードしますので、メール添付にて提出してください。

スクリプトの保存時に「413 Request Entity Too Large」というエラーが出るのはアップロード可能な上限を超えてしまっているということでしょうか。500KB程度より内容を少なくすると正常に保存できます。

運営:スクリプトサイズの制限はありますが、あまり巨大なスクリプトは、ブラウザや搭載メモリによって動作しない可能性があり危険です。スクリプトのコードがそれほど巨大になってしまったということですか?

1回Exitで退場させたAPCを再登場させる事ができないようです。

A:再登場させるAPCは、Exitを使用せず
//右へ退場
NPC[NPCコード].pos:98
//左へ退場
NPC[NPCコード].pos:99
を使って頂ければと思います。

Avatar.Menu:で選択肢を選ぶメニューを出す際に、自分のアバターの顔画像が出ないようにしたい

menu:
と記述して頂ければ目的を達せられると思います。

ブラウザを判定できるようなコマンドはありませんか?アニメと音の同期を取りたいのですが。

運営:ブラウザの判定、ogg or mp3の判定コマンドはありません。
同期をとりたいということですが、ブラウザによって挙動がまちまちなので、スクリプトコマンドを追加するレベルでは難しいと思います。(ブラウザ判定や音源判定しても、同期はとれない気もします)

音声が入ったmp3ファイルを再生したいです。

運営:BGMコマンドでもSEコマンドでも、音声の入ったmp3とoggは再生可能です。
ちなみに、VOICE:コマンドやME:コマンドもありますが、どれも一緒なのでコマンドの問題はないと思います。
(音声はVOICE:コマンド推奨です)

アニメコマンドで指定できるindexを増やせませんか?特定の編集室だけで構いません。

運営:2つ問題があります。
1つは、その編集室のみというのは無理なことと、全体に対するアップデートになりますので、今回の目的に限る対応というのは考えにくいこと。
もう1つは、PCスペックが追いつくかどうかの問題で、例え製作者のPCで動作したとしても、キャラフレには低スペックなPCで遊んでる人や、スマホで苦労して遊んでる層もおり、アニメーションを増やしても遊べないユーザーが出てしまうことが想定されることです。
企画を実現したい気持ちもわかりますので、なんとかしてあげたい気もするのですが、2番の理由から100は現実的でないと考えます。
企画面で回避方法はないか、ご検討お願いします。

指定のマップコードであらわされる場所にアバターを移動させるような処理は可能でしょうか?

運営:技術的には、スクリプトからマップ移動をした場合、実際にマップ移動するのは、スクリプト終了後になります。つまり、移動先マップのランキングに書き込むことができません。

編集室の違うミニゲームをスクリプトから呼んで実行できますか?

運営:スクリプトから、別スクリプトの呼び出しは可能ですが、戻ってこれませんので、一方通行になります。
メニュー→ゲーム→メニュー
のように、一方通行を連結することはできます。
過去のミニゲームを改変する場合は、編集室でのバージョンアップを申請して下さい。無変更で呼び出すだけでしたら、バージョンアップの申請は必要ありません。
記述方法ですが、呼び出すスクリプト名を公開していませんので、個別にこちらで記述方法をお知らせします。
スクリプト内に、
//ここから○○ゲームを呼び出す
みたいなコメントを埋めて、連絡ください。
なお、GotoFile:コマンドは編集室で記述した後動作確認するために生徒会での再変換作業が必要です。
(桜注:別スクリプトの呼び出しが出来るかどうかは、編集室で確認できないと思われます。)

スクリプトで、どちらの学園か区別する方法はありますか?

以下のコードをご利用ください。
lf[0]=getPlatform

運営:第二学園は10が返ります。
10以外は全て第一学園として処理してください。
理由は、aima等の第一学園別プラットフォームの値がそれぞれ異なった値で返ってくるからです。

Q:編集室を使用するためのカードキーはどこに申請すればいいですか?

運営:高等部の方の編集室キー交付に関しては、高等部の生徒会からもらってください。カレッジ生の方は直接ご依頼ください。

Q:カレッジ生は個別に編集室を持てると聞きました。どう申請すればよろしいでしょうか?

運営:公開予定の企画がある場合は、スクリプトコードの割り振りが必要なので、簡単な企画内容をお知らせ頂けると助かります。カレッジ生徒の場合は、企画が具体的でなくても、研究用として一人一室割り当てが可能です。その場合は「カレッジ生研究用」と言って頂ければ大丈夫です。(実際に何かを公開したい場合は、公開用に編集室を移設しますので、どのように公開するかも含めてご相談頂ければサポートさせて頂きます。)

Q:カレッジ生が編集室を使用する場合、ゲーム等の共同制作者である他のプレイヤーを、編集室に入れることは可能でしょうか。

運営:共同制作は問題ありませんし、特に制限を設けるつもりはありません。ただ、カードキーは無限に発行できるものではないので、最低限の人数に留めてご利用頂けるように、ご協力お願い致します。また、カードキーの管理は、編集室の申請者にて行って頂けますようお願いします。

Q:編集室からアップロードしたファイルの使い方は?

A:例えばBG:user/******/haikeiのように、user/部活コード/ファイル名という形式で指定します。部活コードは編集室に入るためのカードキーのアイテムコード(「IGE」で始まるコード)からIGEと後ろの_00をとり除いた部分です。詳しくは 背景、画像を出したいときにはをご覧ください。

Q:アニメーションコマンドで、画面上に一度に何枚の画像を出せますか?

運営:これまでのところ、9枚しか使用例が無いように思われます。
桜:テストしてみたところ、19枚までは表示可能でした。(20枚目、つまりIndex番号20を指定すると動かなくなります。)
運営:19まで使えれば、使って頂いてもいいと思います。ただ、これまでの実績では9までしか利用していないということ、多人数による負荷の問題や、低スペックのPCでも遊べるかどうかなどの実検証は行われていないという点に、ご了承頂いた上でご利用ください。

Q:スクリプトを実行している方のIDを取得する方法は?

A:自分のIDを取得する命令 lf[0]=getMyID または指定した値が自分のIDかどうか判定する命令 lf[1]=Avatar.checkMyID:lf[0] を応用してください。一致していればlf[1]に1が返ります。

Q:アイテムを配布する際に、どのようなスクリプトを書けばよいでしょうか?

運営:無条件に配布するには Avatar.AddItem:アイテムコード 一人一個制限の場合には Avatar.AddItem:アイテムコード,2 を利用してください。アイテム配布制限事項に関しては、高等部生徒会の指示に従ってください。

Q:アバターNPC登録したアバターでセリフを発言する場合、登録した名前で表示されますが、この名前を別の名前で表示させる方法はありますか?(顔アイコン部にAPCアバのアイコンをはめ込み、任意の名前でセリフが発言出来ればOKです)

桜:とあるアバターの顔部分を・・というコマンドはないはずです。ですがfaceEV:というコマンドがあって、 128×128の画像をフェイスウィンドウに表示することができるので、画像を切り出して運営さんに送ってアップロードしてもらうか、編集室からアップロードすれば、faceEVで任意の画像、Speechで、任意の名前という表示は可能です。
運営:アバターNPCは、生徒会作業により後から名前を付け替えることが可能ですので、変更したい名前を生徒会に依頼して頂くのがいいと思います。同じアバターで、複数の名前を使いたい場合(双子とか)の場合は、複数回の登録をしてもらっても構いません。

Q:スクリプトから体力の増減を行ないたい

運営:スクリプトから体力の増減を行いたいという要望や質問が多数寄せられますので、以下のコマンドを公開致します。
Avatar.useLife:値 ライフが値分減ります。最大減少量は10に制限してあります。
Avatar.useLife:値,up ライフを値分増加させます。最大増加量は10に制限してあります。オーバーチャージされている場合は増加しません。
パラメータ増減系のコマンドは、短い時間に連続で呼び出すと サーバー側のチート判定にひっかかり、 自動アカウントロックの対象になります。 スクリプトの記述ミス等で、呼び出しを無限ループさせたりしないようにご注意ください。コマンドを公開したからといって、 使用を推奨するものではありません ので、自信の無い方は使わないようにしてください。

Q:アニメーションコマンドで画像を移動させると、終点に指定した座標とずれが生じます。

運営:アニメーション時の座標は、画像の中心を指定してください。
運営:アニメーション時の座標が整数を前提としていますので、小数点以下が誤差となります。回避する方法としては、カードサイズやカード座標を整数で割り切れるように作り込むという方法もありますが、アニメーション終了後に点Pへ直接表示しなおして回避するのが簡単だと思います。
桜:「移動時間を移動量の整数倍にする」ことで誤差を減らすことができました。

Q:常設可能なmuzie楽曲のリストは?

運営:編集スタジオ#2に一覧を公開しました。

Q:常設可能なmuzie楽曲のリストに記載されている曲は、部員が購入済みである事が前提でしょうか?購入してない(未所持)の曲については使用NGという事でいいのでしょうか?

運営:常設可能なmuzie楽曲のリストについてですが、これらの楽曲はキャラフレ事務局がmuzieに対して使用料を支払いアーティスト様に還元済です。従いまして、部員の方の購入は必要ではありません。(もし気にいった曲があったら、何かの機会にぜひ買ってあげてくださいね)

Q:ミニゲームのハイスコアを登録したい。

A:以下の命令をご利用ください。 Avatar.resultLog:団体No,ゲームNo,スコア,コメント
団体Noは部活コードからハイフォンを抜いたものです。ゲームNo.は、部活/同好会で初めてランキングを使う場合は1にして、以後は連番にしてください。但し、今のところ(桜注:2013年5月現在)使っていないので、間違っても問題にはなりません。(将来のための予約なので、できるだけ正しい値を設定されているのが望ましいというレベルです)

Q:複数人のアバターを一斉に入場・退出させる方法は?

運営;.posコマンドは非同期(コマンド終了を待たない)で動作します。試してみてください。下記の方法は、アニメーション時間を短縮することはできますが、読込(通信)時間はある程度かかりますので、その点はご理解ください。

//まずNPCを非表示で読込
NPC:NPCコード1,1,s,99,-3
NPC:NPCコード2,1,s,99,-3
NPC:NPCコード3,1,s,99,-3

//次にposコマンドで登場
NPC[NPCコード1].pos:5
NPC[NPCコード2].pos:1
NPC[NPCコード3].pos:4

Q:乱数を取得したい。

A:lf[0]=World.rand:3 というコマンドを使用してください。後ろの数字は3種類の乱数(0,1,2)を取得するという意味です。0,1,2,3の4種類を取得したい場合は lf[0]=World.rand:4 と記述してください。

Q:LAYER: コマンドの画像を消したい。

運営:透明画像を上書きすることで画像を消すことはできますので、
LAYER:layer/clear.png,レイヤー番号
を使ってください。LAYER:コマンド(BGコマンドもそうですが)は本来マップ移動時に取得されるマップ情報を上書きして、システムを騙すタイプのコマンドになります。従いまして、MAPコマンドで通常のマップに戻すことでクリアできますが、レイヤー単体で消去することができません。

Q:複数人でスクリプトを実行した結果をやり取りしたい。

運営:ある人が実行したスクリプトから、別の人に処理をさせる方法としては、runScriptと呼ばれる処理があります。アイテムデリバーの♪処理も共通の仕組みです。これは、基本的に一方通行の仕組みなので、コマンドを投げて自分は終了する書き方をします。ものが届いたかどうかスクリプトで検出できませんし、待機して返事を待つこともできません。runScriptを繰り返すことで、往復する処理を書いたとしても、途中で通信を取りこぼした場合、それっきりになってしまいます。飛ばした先でのメニュー表示等は問題なくできます。
runScriptよりも安定して同期させる仕組みとして、ビーチバレーで使っているGameSyncというシステムがあります。ただ、こちらは処理が複雑なので、使い方を整理してうまくお伝えすることができません。また、GameSync専用マップを用意する必要があり、編集室でスクリプト記述をしたとしても、その場で動作確認することができません。
結論として、runScript処理なら、ADWYさんがある程度把握されているので、情報交換して頂ければ多少使えるようになると思います。GameSyncは、非公開というわけではないのですが、こちら側でサポート対応する余力が難しそうです。どちらの仕組みもそうですが、2人以上で同時にテストしないといけないタイプですので、こちらに「ちょっと調べてほしい」と依頼された時の負担が重くなり、積極的に使用を推奨しておりません。それでも自己責任でトライしたいという場合は、既存のスクリプトを提供するくらいなら可能です。

Q:メニュー用バナーの大きさは?

運営;メニュー用バナーは300×50pixelなのですが、タイトルはいろんな場所に使う可能性があるため、600×100あるいは900×150くらいで作って頂くのがいいと思います。

Q:編集室の違うミニゲームをスクリプトから呼んで実行できるように調整して頂く事は可能でしょうか?

運営:スクリプトから、別スクリプトの呼び出しは可能ですが、戻ってこれませんので、一方通行になります。「メニュー→ゲーム→メニュー」のように、一方通行を連結することはできます。記述方法ですが、呼び出すスクリプト名を公開していませんので、個別にこちらで記述方法をお知らせします。スクリプト内に、「//ここから○○ゲームを呼び出す」みたいなコメントを埋めて、連絡ください。

Q:指定のマップコードであらわされる場所にアバターを移動させるような処理は可能でしょうか?

運営:スクリプトからマップ移動をした場合、実際にマップ移動するのは、スクリプト終了後になります。つまり、移動先マップのランキングに書き込むことができません。

スクリプト Q&A” に対する意見

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

コメントを残す

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