修正必要部分

@const int item_key = 1046;←此処の数字は宝箱の鍵となるアイテムです。宝箱が施錠されていた場合このアイテムを消費する判定がでます。
Aconst int item_CBox = 34;←閉まっている宝箱のオブジェクト画像インデックスです。
Bconst int item_OBox = 35;←開いている 〃
Bconst int enemy = 2;←主人公に敵対する勢力インデックスを指定してください。

リファレンス

プロトタイプ 引数(数字は順番) 戻り値 説明
int BoxCheck(int box,
int qx, int qy);
1:宝箱を開けたかどうかを保存する変数(0:閉/1:開)
2,3:宝箱のX, Y座標です。
宝箱をまだ開けていない→0
宝箱を既に開けてある→1
宝箱を既にあけたかどうかを調べます。既に空けてあったら宝箱をあけた状態にします。基本的にマップに入った瞬間1度だけ実行します。
int OpenBox(int box,
int qx, int qy, int qz,
int dir, string len,
int item, int num, int flg
);
1:宝箱を開けたかどうかを保存する変数(0:閉/1:開)
2,3,4:宝箱のX,Y,Z座標
5:宝箱を開ける時の主人公の向き
6:アイテム名
7,8:アイテムindex, 個数
9:鍵をかけるか(1:施錠/0:通常)
宝箱を開けた→1
開けていないor開けられない→0
宝箱を開ける処理をします。指定した座標を調べると、item,numで指定アイテムを入手します。持ち物が一杯だと何もせず、0を返します。flgを1にした場合、item_keyで指定した番号のアイテムを消費して箱を開けます。
int GetItemInMessage(
void *chara,
int item, int num,
string t_len, string f_len
);
1:アイテムをあげるキャラ
2,3:アイテムのindex,個数
4:アイテム入手メッセージ
5:アイテム入手不可メッセージ
アイテム入手→1
入手不可→0
メッセージ中に画像付きでキャラにアイテムを与えます。
void *CreateMob(
int qx, int qy, int qz,
int index, int lv,
);
1,2,3:配置座標
4:キャラクターindex
5:レベル
作成したキャラクターのポインタ キャラクターを作成します。向きはランダムです。勢力はenemyで指定した番号になります。ポインタが戻り値として戻ってくるので、キャラクターデータを作った瞬間に即配置ができます。
void *CreateNPC(int index,
int qx, int qy, int qz,
int dir, int flg);
1:キャラクターindex
2,3,4:配置座標
5:向き
6:動き(0:動く/1:静止)
作成したキャラクターのポインタ NPCキャラクターを作成します。NPCキャラクターは戦闘に関与しないキャラクターです。flgに1を入れると動かなくなります。主にショップの店員などを配置する場合に使用します。
void SetBoss(void *chara, int hp); 1:設定するキャラクター
2:最大HP
なし キャラクターの最大HPを操作します。(加算ではなく、この値になります。)
float CheckHP(void * chara); 1:調べるキャラクター 対象の残りHP キャラクターの残り体力を獲得します。
int MoveMap(
int qx1, int qy1,
int qx2, int qy2,
int qx3, int qy3, int qz,
string map);
1,2:最小X,Y
3,4:最大X,Y
5,6,7:移動先X,Y,Z
8:移動先マップ
移動場所に到達→1
範囲外→0
操作キャラクターが最小-最大の長方形範囲に入ったらmapで指定したマップをセットし、1を返します。なお、この関数はif()の中に入れ、1を返した時にreturnするようにしてください。ExitMapFunc関数は使用していません。
int MoveMapC(
int qx1, int qy1,
int qx2, int qy2,
int qx3, int qy3, int qz,
string map,
int flg, int anim);
1,2:最小X,Y
3,4:最大X,Y
5,6,7:移動先X,Y,Z
8:移動先マップ
9:移動条件式
10:バック方向
移動場所に到達→1
範囲外or flgが偽→0
基本的にMoveMap関数と同じです。違いは、flgで指定した条件を満たしてない場合、animで指定した方向に1マス戻されます。
int InHouse(
int qx1, int qy1,
int qx2, int qy2, int qz,
int cip1, int cip2,
string map);
1,2:ドア座標X,Y
3,4,5:移動先X,Y,Z
6:閉ドアチップ
7:開ドアチップ
8:移動先マップ名
ドアを調べた→1
何もして無い→0
指定した座標を調べると、cip2で指定した画像に替え、mapで指定したマップに移動します。使用方法はMoveMap関数と同じです。
int MoveToMoney(int money,
int qx, int qy, int qz,
string map, string ms);
1:費用
2,3,4:移動先X,Y,Z
5:移動先マップ
6:メッセージ
決定した→1
費用不足orキャンセル→0
moneyで指定した額を消費し、mapで指定したマップへ移動します。所持金が不足していたり、キャンセルを押したり、何もしていない場合、0が返ります。
void BackAnim(int dir); 1:向き なし 操作キャラクターを指定した向きに1マス戻します。マップ移動時に使う場合はMoveMapCを利用してください。
void BackAnimC(void * chara, int dir) 1:対象キャラクター 2:向き なし charaで指定したキャラをdirの方向へ1マス戻します。
int Message1(int qx, int qy,
int dir,
string len, int color);
1,2:X,Y座標
3:向き
4,5:メッセージ,メッセージ色
指定した座標を調べた→1
何もしない→0
指定した座標を調べるとlenで指定したメッセージをcolorで指定した色で表示します。主に看板など動かないオブジェクトを調べることに使用します。
ifステートメントの中に入れると後の条件分岐もできます。
int Message2(void *chara,
int mode,
string len, int color);
1:対象NPCキャラ
2:向きを変えるか(0:そのまま/1:変える)
3,4:メッセージ,メッセージ色
対象NPCに話しかけた→1
何もしない→0
指定したキャラクターに話しかけるとlenで指定したメッセージをcolorで指定した色で表示します。modeに1を指定すると会話時に操作キャラクターの方向に振り向きます。
ifステートメントの中に入れると後の条件分岐もできます。
void msString(string len,
int color);
1:表示メッセージ
2:色
なし 指定したメッセージを表示し、決定キーが押されるまで待機します。
void cmsString(string len,
int color);
1:表示メッセージ
2:色
なし 指定したメッセージを表示し、決定キーが押されるまで待機します。なお、決定キーを押すとログとメッセージウィンドウの設定が初期化されます。
int SelectMessage(
string len1, string len2,
int cansel);
1:選択肢その1
2:選択肢その2
3:キャンセル時(0:その1が選択/1:その2が選択)
その1を決定→1
その2を決定→2
2択の選択肢を表示します。len1は上側、len2は下側の選択肢です。なお、canselに-1を指定するとキャンセル不可になります。
int Conpound(
int item1, int num1,
int item2, int num2,
int item3, int num3,
int item4, int num4,
int Titem, int Tnum,
int Fitem, int Fnum,
float P, int money
);
1,2:材料アイテム1, 個数
3,4:材料アイテム2, 個数
5,6:材料アイテム3, 個数
7,8:材料アイテム4, 個数
9,10:成功アイテム, 個数
11,12:失敗アイテム, 個数
13:成功確率
14:費用
合成成功→1
合成失敗or材料、費用不足→0
4種類までのアイテムで合成します。合成に成功すると、Titemで指定したアイテムをTnumで指定した個数、失敗するとFitemで指定したアイテムをTnumで指定した個数操作キャラクターが獲得します。なお、Pで成功確率、 moneyで費用を指定できます。
int PassWord(int answer); 1:正解パスワード 正しい数値を入力→1
間違った数値を入力orキャンセル→0
パスワード入力を要求します。answerに指定したパスワードが入力されると1を返します。なお、-1000はキャンセル番号として使用されているため、-1000が答えとなるような場合はこの関数を使用しないでください。
int SetGraph( void *Chara,
string String,
int graph
);
1:グラフを表示するキャラクター
2:グラフの上側に表示する文字
3:グラフの本数(1〜5)
なし グラフを表示します。graphを1以外で指定すると多重にします。(紫→青→緑→黄→赤)なお、NormalProcess(1);を実行していると、表示に線が入ります。NormalPrcocess(0);にし、プロセス関係を自分で構築してください。
void SetGraphEx(
void *Chara,
string String,
int graph,
int max
);
1:グラフを表示するキャラクター
2:グラフの上側に表示する文字
3:グラフの本数(1〜5)
4:グラフ全体の最大値
なし 基本的にSetGraph関数と同じです。maxで指定した値がグラフの最大の値となります。多重にしている場合、全体の最大値となります(=キャラクターの最大HP-maxがグラフのズレとなります。)
グラフがなくなっても生きているように見せたり、グラフでHPを多く見せたい時などに使用します。ただし、キャラクターの最大HPよりmaxの値が大きいと、HPが0になっても表示され続けるので、if文などで分岐してください。
戻る
inserted by FC2 system