====== 備え付け変数 ====== システムが提供する変数の説明です。スクリプトで利用することができます。 ===== 日時系 ===== ==== 起動時のサーバー側日時 ==== ゲーム起動時のサーバー側で管理している日時情報(端末管理の日時ではありません) ^変数名^内容/説明^ |kag.servertime_ymd|ゲーム起動時のサーバー側の年月日\\ 形式:YYYYMMDD(例:20210903)| |kag.servertime_y|ゲーム起動時のサーバー側の年\\ 形式:YYYY(例:2021)| |kag.servertime_m|ゲーム起動時のサーバー側の月\\ 形式:MM(例:03,12)| |kag.servertime_d|ゲーム起動時のサーバー側の日\\ 形式:DD(例:05,25)| |kag.servertime_h|ゲーム起動時のサーバー側の時\\ 形式:hh(例:09,23)| |kag.servertime_i|ゲーム起動時のサーバー側の分\\ 形式:ii(例:07,55)| |kag.servertime_s|ゲーム起動時のサーバー側の秒\\ 形式:ss(例:08,56)| |kag.servertime_epoc|ゲーム起動時のサーバー側のエポック秒| 上記変数とシステム変数を利用すれば、ログインボーナスの制御などに応用することができます。\\ 例:AM5時にログインボーナスを付与する。 |@eval exp="tf.logbotime = 5"\\ @if exp="sf.last_logbo_y == 0 %%|%%%%|%% kag.servertime_epoc - sf.last_logbo_epoc >= 86400 %%|%%%%|%% (kag.servertime_h >= tf.logbotime && (kag.servertime_ymd - sf.last_logbo_ymd > 0 %%|%%%%|%% sf.last_logbo_h < tf.logbotime)) %%|%%%%|%% (kag.servertime_h < tf.logbotime && (kag.servertime_ymd - sf.last_logbo_ymd > 0 && sf.last_logbo_h < tf.logbotime))"\\  ログボ付与です。[l][r]\\  @eval exp="sf.last_logbo_y = kag.servertime_y; sf.last_logbo_h = kag.servertime_h; sf.last_logbo_ymd = kag.servertime_ymd; sf.last_logbo_epoc = kag.servertime_epoc"\\ @else\\  ログボ付与しません。[l][r]\\ @endif| ==== ブラウザ側現在日時 ==== ^変数名^内容/説明^ |kag.time_y|変数読み込み時のブラウザ側の年 形式:YYYY(例:2021)| |kag.time_m|変数読み込み時のブラウザ側の月 形式:MM(例:03,12)| |kag.time_d|変数読み込み時のブラウザ側の日 形式:DD(例:05,25)| |kag.time_h|変数読み込み時のブラウザ側の時 形式:hh(例:09,23)| |kag.time_i|変数読み込み時のブラウザ側の分 形式:ii(例:07,55)| |kag.time_s|変数読み込み時のブラウザ側の秒 形式:ss(例:08,56)| 現在時刻が取得できます。\\ 時刻や季節によって表示する画像を変えるような場面に活用できます。\\ |@image storage=朝 cond="kag.time_h > 6 && kag.time_h < 9"| ===== スキップ/オート ===== ^変数名^内容/説明^ |kag.skipMode|true:スキップモード中\\ false:スキップモード中ではない| |kag.autoMode|true:オートモード中\\ false:オートモード中ではない| |【例】スキップモード中はBGMを鳴らさない\\ @playbgm storage=hoge cond="kag.skipMode == false"| ===== イメージレイヤー情報 ===== イメージレイヤの各属性をスクリプトで読み取ることができます。\\ ※当該レイヤーが存在しない場合、値には'0'が入ります。\\ ■形式\\ kag.<ページ>.layers.<レイヤ名>.%%__%%<属性ID>\\ 例:\\ @eval exp="tf.x = kag.fore.layers.hoge.%%__%%69"\\ @eval exp="tf.fn = kag.back.layers.hoge.%%__%%58" ^属性名^属性ID^ |fronttext|9| |clipheight|19| |clipwidth|20| |clipleft|21| |cliptop|22| |layer|46| |storage|58| |opacity|62| |orgx|64| |orgy|65| |page|66| |left|69| |top|70| |z|88| |zh|0a6| |zv|0a7| |rotate|0a8| |group|0aa| |例:レイヤー名がhogeの表画像の画像ファイル名を取得\\ @eval exp="tf.fn = kag.fore.layers.hoge.%%__%%58"\\ ※tf.fnがの値が'0'の場合、当該レイヤーは存在しない。| |@layopt layer=hoge left=0 cond="kag.fore.layers.hoge.%%__%%58 != 0"\\ ↑hogeレイヤーが存在する場合のみlayoptしてます| ■画像の縦横サイズ取得(2022.01追加)\\ 例:\\ @eval exp="tf.w = kag.fore.layers.hoge.width"\\ @eval exp="tf.h = kag.back.layers.hoge.height" ===== BGM、SE情報 ===== ^変数名^内容/説明^ |kag.bgm.isPlay|true:BGMプレイ中, false:BGMプレイ外| |kag.bgm.storage|BGMファイル名| |kag.bgm.isPause|true:BGM一時停止中, false:BGM一時停止中外| |kag.se..isPlay|true:SEプレイ中, false:SEプレイ外\\ buf:0~2の数字\\ 例:@eval exp="tf.hoge = kag.se.0.isPlay"| |kag.se..storage|SEファイル名\\ 例:@playse storage=&kag.se.0.storage| |kag.se..isLoop|true:ループありSE, false:ループなしSE| ===== func変数 ===== ^変数名^内容/説明^ |parseInt|計算結果の小数点以下を切り捨てます。\\ 【例】\\ @eval exp="tf.1 = 30; tf.2 = 7; tf.int = func.parseInt(tf.1 / tf.2);"\\ @emb exp="tf.int"\\ →tf.intは4| |isNull|引数となる変数の初期化有無を判定\\ 【例】\\ @eval exp="tf.resulet = func.isNull(tf.hoge)"\\ →tf.hogeに値が代入されていないので、tf.resuletはtrue\\ @eval exp="tf.hoge = 0"\\ @eval exp="tf.resulet = func.isNull(tf.hoge)"\\ →tf.hogeに値が代入されているので、tf.resuletはfalse| |random|0~9999999の間のランダムな整数。\\ 【例】\\ 0~99のランダム値を取得\\ exp="tf.rnd = func.random; tf.rnd = tf.rnd % 100"\\ 【注意点】\\ func.randomを復習要素の式中で使用することはできません。\\ 【NG例】:exp="tf.rnd = func.random % 100"| |currentTime|端末(ブラウザ)のエポック秒(UNIX時間)[ミリ秒]を取得\\ 【例】\\ @eval exp="tf.time = func.currentTime"| |epochSecond|端末(ブラウザ)のエポック秒(UNIX時間)[秒]を取得\\ 【例】\\ @eval exp="tf.epoc = func.epochSecond"| |length|引数となる変数の文字列長\\ 【例】\\ @eval exp="tf.hoge = func.length(100)"\\ →tf.hogeは3\\ @eval exp="tf.aiueo = 'あいうえお'; tf.hoge = func.length(tf.aiueo)"\\ →tf.hogeは5| ■経過時間の管理や、imageタグを用いた現在日時の表示に活用できます。\\ 【TIPS】imageタグを用いた現在日時の表示 |exp="tf.rnd = func.random ; tf.x = tf.rnd % 800 "\\ @image layer=num storage=numbers visible=true orgx=l orgy=t left=400 top=300 format=date value=&func.epochSecond\\ →2021/03/04\\ @image layer=num storage=numbers visible=true orgx=c orgy=c left=400 top=300 format=datetime value=&func.epochSecond\\ →2021/03/04 18:23:54| ===== 座標系情報 ===== ^変数名^内容/説明^ |kag.touch_down_x|最後にタップされたキャンバス上のX座標| |kag.touch_down_y|最後にタップされたキャンバス上のY座標| |kag.touch_move_x|最後にスライド(指が離されずスマホ上を移動)されたX座標| |kag.touch_move_y|最後にスライド(指が離されずスマホ上を移動)されたY座標| ■任意のタイミングでタップした位置によって処理を制御したいような場合に使えます。 |例1:\\ @eval exp="tf.x = kag.touch_down_x; tf.y = kag.touch_down_y"\\ @image storage=hoge layer=lay1 visible=ture left=&tf.x top=&tf.y| |例2:\\ @eval exp="tf.x = kag.touch_down_x"\\ @if exp="tf.x > 100 && tf.x < 400"\\  横位置100~400の間をタップした\\ @endif| ===== その他 ===== ^変数名^内容/説明^ |{{anchor:kagprefixopensocial:kag.prefixOpensocial}}|ソシャゲプラットフォーム判定\\ animateg:animateGAMES\\ nijiyome:にじGAME\\ dmm:FANZA GAMES\\ ※プラットフォームによって画像ファイルを変更したい時などに使用\\ 以下の例の場合、shp_animateg.png、shp_nijiyome.png、shp_dmm.pngの3つのファイルを稼働するプラットフォームにより自動で表示分けします\\ 【例】\\ @image storage=shp_&kag.prefixOpensocial layer=_p3 page=back| |kag.b_ios|端末OS判定\\ true:IPHONE、false:IPHONE以外\\ @if exp="kag.b_ios == true"\\  IPHONEの処理\\ @else\\  IPHONE以外の処理\\ @endif| |f.%%__%%jump_label%%___%%\\ f.%%__%%jump_storage%%___%%|実行中のシナリオファイル名とラベル名がゲーム変数に自動設定されます\\ ラベル名:f.%%__%%jump_label%%___%%\\ シナリオファイル名:f.%%__%%jump_storage%%___%%\\ 例\\ @emb exp="f.%%__%%jump_label%%___%% + ':' + f.%%__%%jump_storage%%___%%"\\ [[使い方のヒント#既読スキップ実装|こちら「既読スキップ実装」も参照]]|