ソースコードの仕様

ソースコードの仕様

このアーカイブにはゲーム部分の実行ファイルのソースコードが添付されています。
ソースコードの言語はHSP3.1です。

ファイル、ディレクトリ構造について

場所と説明の一覧
commonmodule
共通モジュール
rpg_common
RPG部分共通モジュール
RPG\rpg_main.hsp
メインコード
RPG\header.hsp
インクルードファイル
RPG\extension.hsp
拡張モジュール用ヘッダファイル
RPG\module
ゲーム用モジュール
RPG\extension
RPG拡張モジュール格納ディレクトリ

拡張機能

拡張機能とは、ユーザーが高度な独自システムを構築することができる機能です。
この機能を使うと、独自の命令や関数でオリジナルシステムを呼び出したり、既存の機能を拡張することができます。

使用方法

  1. 拡張機能仕様に準したソースコードを"RPG\extension"ディレクトリに移動させる
  2. RPG\extension.hsp に追加したファイルの結合(#include)を行う

ソースコードの構造

以下のサンプルコードを参考にしてください。 モジュール内では、HSP標準命令、関数と、 内のすべてのモジュール命令、関数が使用できます。

#ifdef MODULE_SET
;このマクロで挟まれたところにモジュールのソースコードを記述する

#module rpg_eve_mess
#deffunc messageinit
	messagespeed=1
	wakumode=1
	initf=1
	posx=50
	posy=50
	return
#deffunc mess str palee1,int pal2,int pal3,int param4
	mesmode=1
	if initf=0:messageinit
	chrmove_accept 0
	if pal3=0:pale1=palee1

	if pal3=1:pale1=palee1
	newmod message,rpg_dmes
	pos posx,posy
	color
	mktextmes message(0),autolineset(str(pale1),52),pal3\2
	if messagespeed=-1{
		setmesspeed message(0),-1
	}else{
		if getmessagespeedmode()=0:setmesspeed message(0),-1
		if getmessagespeedmode()=1:setmesspeed message(0),messagespeed
		if getmessagespeedmode()=2:setmesspeed message(0),messagespeed*3
	}
	waitmode=0
	wakud=wakumode
	systask
	repeat
		if pal2=1&waitmode=1:break
		if waitmode=1&KEY_OK=1:break
		systask
	loop
	return

#deffunc drawmessage
	if vartype (message)=5{
		if wakud=1{
			pos posx-20,posy-20
			gmode 4,560,180,200
			gcopy 12,0,0
			if waitmode=1:pos posx+250,posy+120+count@/3\10:color :mes "▽"
		}	
		drawmes message(0)
	}
	if vartype (menu(0))=5: drawmenubox menu(0)
	return
#deffunc processmessage
	if vartype (message(0))=5{
		textmeswait message(0)
		if stat=1:waitmode=1
	}
	if vartype (menu(0))=5:menuboxwait menu(0)
	return
#deffunc mesend
	newmod message,rpg_dmes
	delmess message(0)
	if vartype (menu(0))=5:delmenubox menu(0)
	mesmode=0
	message=0
	choice=0
	return
#global
#endif
;#endifで閉め、間には何も書かない

#ifdef EVENT_START
;このマクロ間にアクションの命令呼び出しを記述する
;変数"meirei"   に呼び出された命令名が代入
;変数"param1~8" 呼び出された命令のパラメーター
;命令"rnext"    命令終了を指示する命令
	if meirei="mes":mess ""+param1,int(param2),0:rnext
	if meirei="mesend":mesend :rnext
;return は記述しない
#endif
#ifdef MAIN_PROCESS
;1フレーム(20msec)ごとに呼び出されるマクロ
	if mesmode@rpg_eve_mess=1&drawmode@=1:processmessage
;return は記述しない
#endif
#ifdef MAIN_DRAW
;描画時に呼び出されるマクロ
;return は記述しない
#endif
#ifdef MAIN_DRAW2
;MAIN_DRAW描画後に呼び出されるマクロ
	if mesmode@rpg_eve_mess=1&drawmode@=1:drawmessage
;return は記述しない
#endif
#ifdef EVENT_EXIT
;アクション終了時に呼び出されるマクロ
	messageinit
	mesend
;return は記述しない
#endif

ライセンスについて

このアーカイブ内のソースコードの著作権は一部を除いてSekiSekkiにあります。
"commonmodule"内のソースコードの一部には、SekiSekki以外のソースコードがあります。
そのコードの再配布等はその作者のライセンスに従ってください。

SekiSekkiのソースコードについては、ゲーム制作もしくはその支援に関することならば、 著作権情報を変更しない限り連絡なしで自由に改変、再配布してかまいません。
このとき、著作権情報の後に第3者による改変をしたことを何らかの形で示してください。
それ以外の場合は事前に連絡して許可をとってください。
改変したソースコードをコンパイルしてできたデータ(実行ファイル)についても同様です。

TOP