リファレンス トップ >> 構造体
■はじめに
弾、キャラ構造体の各変数を説明します。
弾の構造体変数を得るにはC_GetBulletInfo()を使用、
キャラの構造体変数を得るにはC_GetCharacterFromObjNo()またはC_GetCharacterAtVector()を使用してください。
戻り値にプログラムが持つ構造体がテーブルとして格納されます。
テーブルは参照のみ可能です。変数を操作する場合は用意されたAPIから行ってください。
構造体
- type_session - キャラ情報構造体
- unsigned long obj_state - キャラの状態。各状態は下記の定数値のビットが立っています。
DEF_STATE_EMPTY - 接続していないまたは切断した。
DEF_STATE_WAIT - キャラが自ターンを待っている。
DEF_STATE_ACTIVE - キャラが自ターンでアイテム使用や移動可能な状態。
DEF_STATE_DEAD - キャラが死んでいる状態
DEF_STATE_DROP - キャラがステージ外に落ちている
DEF_STATE_SHOTPOWER - 発射パワーを貯めている
DEF_STATE_SHOTPOWER - 発射パワーを貯めている
DEF_STATE_TRIGGER_BULLET - 弾発射パワーが確定してから発射前までの状態
DEF_STATE_TRIGGER_SPELL - スペルカード発射パワーが確定してから発射前までの状態
DEF_STATE_SHOT - 弾を発射した状態
- short vx - 移動値X
- short vy - 移動値Y
- short ax - ステージ上の座標X
- short ay - ステージ上の座標Y
- short lx - キャラ選択画面での座標X ※20161231版から
LOBBY_W - キャラ選択画面での幅
LOBBY_WATCHER_SPOT_W - ロビーの観戦席の幅
- short ly - キャラ選択画面での座標Y ※20161231版から
LOBBY_H - キャラ選択画面での幅
- short angle - キャラの傾き(角度)
- unsigned char obj_no - キャラのオブジェクト番号
- unsigned short frame_count - キャラのフレーム数。状態が変わるごとにクリアされます。
- unsigned short turn - 経過ターン数
- unsigned long extdata1 - 拡張情報1
- unsigned long extdata2 - 拡張情報2
- unsigned long option[8] - 拡張情報と同様な目的で使用可能な8個のテーブルデータです。
情報の取得はキャラ構造体を得るかC_GetCharaOptionDataを使用
情報の設定はC_SetCharaOptionDataを使用してください。
- unsigned long items[GAME_ITEM_STOCK_MAX_COUNT] - 保持アイテム一次元配列
GAME_ITEM_STOCK_MAX_COUNT定数は手持ちのコストで一番コストの低いアイテムだけを限界まで持てる数です。
各要素には0(アイテムなし)または下記の定数値が設定されています。
値が正しく取得できないのでC_GetCharaItemを用意しました
items[GAME_ITEM_MOVE_UP] : 移動値増加
items[GAME_ITEM_DOUBLE_SHOT] : 連射
items[GAME_ITEM_STEALTH] : ステルス
items[GAME_ITEM_REVERSE] : 上下反転
items[GAME_ITEM_BLIND] : 暗転
items[GAME_ITEM_SHIELD] : シールド
items[GAME_ITEM_POWER] : パワーアップ
items[GAME_ITEM_NOANGLE] : 角度変更不可
items[GAME_ITEM_NOMOVE] : 移動不可
items[GAME_ITEM_REPAIR] : 回復(小)
items[GAME_ITEM_REPAIR_BULLET] : 回復弾
items[GAME_ITEM_TELEPORT] : 移動弾
items[GAME_ITEM_REPAIR_BIG] : 回復(大幅)
items[GAME_ITEM_REPAIR_TEAM] : チーム回復
items[GAME_ITEM_DRAIN] : 吸収弾
items[GAME_ITEM_FETCH] : 引き寄せ弾
items[GAME_ITEM_EXCHANGE] : 入れ替え
items[GAME_ITEM_WIND_CHANGE] : 風向き変更
items[GAME_ITEM_STEAL] : スティール
- unsigned char dir - 0のとき左向き、1のとき右向きです
- unsigned char master - マスター権限を持っている/持っていない:1/0
- unsigned char team_no - チーム番号です。個人バトルの場合も各キャラに別の値が設定されています
- short MV_c - 現在の残り移動値
- short MV_m - 現在のMAX移動値
- short HP_c - 現在のHP
- short HP_m - 現在のMAXHP
- short delay - 現在のディレイ値
- short EXP_c - 現在のEXP値、スペルカード使用のためのポイント。使用に必要なポイントはスクリプト中の各スペルカードのexpに入っています。
スペルカード使用直後等、タイミングによりサーバとクライアントで値が合わない事があります。参照する場合はターン開始イベント等が妥当です。
- unsiged short live_count - 生存しているターン数(死んでからはカウントされません)
- unsiged char entity - キャラがゲーム上に居る/居ない:1/0。
ゲーム開始したキャラかどうか判別できます。
C_GetCharacterFromObjNo()で取得した場合、引数によってはゲームに参加していないテーブルを取得する可能性があります。
- char chara_state[] - キャラの状態の一次元配列。配列の各要素には状態がインデックスに分けて入っています。
値が正しく取得できないのでC_GetCharaStateを用意しました
chara_state[CHARA_STATE_STEALTH] : ステルス。値は有効ターン数
chara_state[CHARA_STATE_BLIND] : 暗くなる。値は有効ターン数
chara_state[CHARA_STATE_PAIN] : 毒。値は有効ターン数
chara_state[CHARA_STATE_SHIELD] : シールド。値は有効/無効:1/0
chara_state[CHARA_STATE_POWER] : パワーアップ。値は有効/無効:1/0を設定してください
chara_state[CHARA_STATE_UPMOVE] : 移動増加。値は有効ターン数
chara_state[CHARA_STATE_NOMOVE] : 移動不可。値は有効ターン数
chara_state[CHARA_STATE_NOANGLE] : 角度変更不可。値は有効ターン数
chara_state[CHARA_STATE_DOUBLE] : 二連発使用中。値は有効/無効:1/0を設定してください
chara_state[CHARA_STATE_REVERSE] : 逆さ。値は有効ターン数
chara_state[CHARA_STATE_ITEM_REVERSE] : 逆さ弾発射前状態。値は有効/無効:1/0を設定してください
chara_state[CHARA_STATE_ITEM_BLIND] : 暗くなる弾発射状態。値は有効/無効:1/0を設定してください
chara_state[CHARA_STATE_ITEM_REPAIRBLT] : 回復する弾発射状態。値は有効/無効:1/0を設定してください
chara_state[CHARA_STATE_ITEM_TELEPORT] : 着弾点に移動する弾発射状態。値は有効/無効:1/0を設定してください
chara_state[CHARA_STATE_ITEM_DRAIN] : HP吸収する弾発射状態。値は有効/無効:1/0を設定してください
chara_state[CHARA_STATE_ITEM_FETCH] : 引き寄せる弾発射状態。値は有効/無効:1/0を設定してください
chara_state[CHARA_STATE_ITEM_EXCHANGE] : 位置入れ替え弾発射状態。値は有効/無効:1/0を設定してください
chara_state[CHARA_STATE_ITEM_NOANGLE] : 角度変更不可弾発射状態。値は有効/無効:1/0を設定してください
chara_state[CHARA_STATE_ITEM_NOMOVE] : 移動不可弾発射状態。値は有効/無効:1/0を設定してください
chara_state[CHARA_STATE_ITEM_STEAL] : スティール状態。値は有効/無効:2/0を設定してください
- type_blt - 弾情報構造体
- unsigned long obj_state - 弾の状態。各状態は下記の定数値のビットが立っています。
DEF_STATE_ACTIVE - ステージに存在している場合、次ターンへ移行しません。
DEF_STATE_WAIT - ステージに存在していても次ターンへ移行する弾です。
- short vx - 移動値X。プログラムでは固定小数点数として扱われています。
値が10で、ステージ座標の1pxに相当します。
- short vy - 移動値Y。プログラムでは固定小数点数として扱われています。
値が10で、ステージ座標の1pxに相当します。
- short ax - ステージ上の座標X
- short ay - ステージ上の座標Y
- short bx - ステージ上の座標X
axの10倍の値とbxの1の位には少数第一位の値が入っています。(floor(bx/10)==ax)。
- short by - ステージ上の座標Y
ayの10倍の値とbyの1の位には少数第一位の値が入っています。(floor(by/10)==ay)。
- short angle - 弾の傾き(角度)
- unsigned char obj_no - 弾のオブジェクト番号
- unsigned short frame_count - 経過フレーム数。状態が変わるごとにクリアされます。
- unsigned short turn - 経過ターン数
- unsigned char proc_type - 弾の処理の種別情報です。下記の定数で設定されています。
BLT_PROC_TYPE_SCR_CHARA - キャラが発射した通常の弾
BLT_PROC_TYPE_SCR_STAGE - ステージが発射した通常の弾
BLT_PROC_TYPE_SCR_SPELL - キャラが発射したスペルカードの弾
BLT_PROC_TYPE_ITEM - アイテム弾
- unsigned char obj_type - 弾のオブジェクト種別情報です。下記の定数で設定されています。
OBJ_TYPE_SOLID : 通常はこの弾です。ステージ、弾、キャラに当たり判定があり、風に影響される弾です。
OBJ_TYPE_GAS : 弾、キャラに当たり判定があり、風に影響される弾です。
OBJ_TYPE_LIQUID : ステージ、弾、キャラに当たり判定があり、風に影響されない弾です。ステージに接地していない場合は落下します。
OBJ_TYPE_STAGE : 弾、キャラに当たり判定があり、風に影響されない弾です。
OBJ_TYPE_TACTIC : 当たり判定が無く、風に影響されない、描画もされません。
- unsigned char hit_range - 弾の当たり判定の範囲
- unsigned char chr_obj_no - 弾を発射したキャラのオブジェクト番号。
ステージが発射した弾の場合はSTAGE_OBJ_NO定数が設定されています。
- unsigned char chara_type - 弾を発射したキャラのスクリプトID。
ステージが発射した弾の場合はDEF_STAGE_ID定数が設定されています。
弾がアイテム弾の場合はDEF_SYSTEM_ID定数が設定されています。
- unsigned char bullet_type - 弾が定義されているステージまたはキャラクラスのbltテーブルに入っている順のインデックス値。
インデックス値は0スタートです。
- char adx - 弾の加速値X。プログラムでは固定小数点数として扱われています。
値が100で、ステージ座標の1pxに相当します。
- char ady - 弾の加速値Y。プログラムでは固定小数点数として扱われています。
値が100で、ステージ座標の1pxに相当します。
- unsigned long extdata1 - 拡張情報1
- unsigned long extdata2 - 拡張情報2
- unsigned long option[8] - 拡張情報と同様な目的で使用可能な8個のテーブルデータです。
情報の取得は弾情報構造体を得るかC_GetBulletOptionDataを使用
情報の設定はC_SetBulletOptionDataを使用してください。
- type_ground - 地面情報構造体
- int x - 位置X
- int y - 位置Y
- bool ground - 接地できる地面/出来ない地面:true/false
△