テリワンレトロ。プレイブログ。その1

スライム一匹でスタート。
LV上げをしながら、ドラキーとアントベアを仲間に。
このゲームは一匹目は割と楽に仲間になるのですが、
二匹目以降はいっぱいお肉をあげないと仲間にならないです。
ちゃんと落ちてる薬草を拾いながら探索。
LV上げもちょこちょこします。
ボス前に薬草で回復してからボス戦に突入。
戦闘後、ホイミンが仲間になります。

その後、大会Gクラスです。
スライム、ドラキー、ホイミンです。
ドラキーはラリホー使って欲しい時は命令を変えて
いろいろやろうぜ。
戦って欲しい時は、ガンガンいこうぜ。
スライムはガンガンいこうぜ。
ホイミンはいのちをだいじに。
そんなに苦労しないでクリア出来ると思います。
クリア出来ないのは運が悪いか。
(何回かチャレンジしましょう)
レベルが低すぎるかですね。
(ダンジョンに戻ってレベルを上げましょう)

次はまもりのとびらかまちびとのとびらです。
最初、辛いかも。なんか敵がちょっと強いw。
しかし、レベルが少々上がったら楽になると思います。
やくそうが余ってたら売りましょう。
キメラのつばさは少々常備しましょう。
キメラのつばさをケチって毎回クリアしてもOK。

まもりのとびら→スライム、ドラキー、ホイミンでクリア。
まちびとのとびら→ゴレムス、ドラキー、ホイミンでクリア。
ゴレムスとドランどっちを使うかは好みでOKだと思います。
まちびとのとびらでグレムリンを仲間にしましょう。
まもののエサで仲間にしましょう。
たぶん大体メスだと思います。
めいれいさせろで仲間にしたい敵を一匹残して他を倒して、
まもののエサ等を使うといいかんじです。
まもりのとびらでコドラを仲間にしましょう。
まちびとのとびらでピッキーを仲間にしましょう。
ピッキー×コドラの配合でキメラが出来ます。
大体違う性別で仲間になりますが、
違うかもしれないので気をつけましょう。

その辺で、大会Fクラスに挑戦です。
ゴレムス、ドラキー、ホイミンでクリア。
2回戦時、ふしぎなおどりの使われぐあいで、
挑戦が失敗するかもしれません。
何回か挑戦してみてください。
純粋にレベルが低いとレベル上げして下さい。

Fクラスに勝利すると配合出来ます。
ピッキー×コドラでキメラ作成です。
おもいでのとびらでのレベル上げも含めて、
気合を入れてレベル上げをすれば大丈夫です。

Project すぅぃった Python version. NO.02b

import os
# os.system('cls')のため
import sys
# sys.exit()のため
import msvcrt
# msvcrt.getch()のため

#	以下はサンプルプログラム
#	SCENARIO_TEST_02.py

#	選択のID
sel_btnext_pre  = "a"
sel_btnext_post = "a"
#   入力文字列
input_str = ""
while 1:
    if sel_btnext_pre  == "a":
        if sel_btnext_post == "a":
            os.system('cls')
            while 1:
                print("aかsかdか、")
                print("fかgかhを入力してください")
                print("終了:q")
                input_str = msvcrt.getch()
                input_str = str(input_str)
                if input_str == "b'q'":
                    sel_btnext_pre  = "a"
                    sel_btnext_post = "quit"
                    break
                if input_str == "b'a'":
                    sel_btnext_pre  = "b"
                    sel_btnext_post = "ba"
                    break
                if input_str == "b's'":
                    sel_btnext_pre  = "b"
                    sel_btnext_post = "bs"
                    break
                if input_str == "b'd'":
                    sel_btnext_pre  = "b"
                    sel_btnext_post = "bd"
                    break
                if input_str == "b'f'":
                    sel_btnext_pre  = "c"
                    sel_btnext_post = "cf"
                    break
                if  input_str == "b'g'":
                    sel_btnext_pre  = "c"
                    sel_btnext_post = "cg"
                    break
                if  input_str == "b'h'":
                    sel_btnext_pre  = "c"
                    sel_btnext_post = "ch"
                    break
                # end of while
            # end of if
        if sel_btnext_post == "quit":
            print("bye")
            sys.exit()
            # end of if
            
    if sel_btnext_pre  == "b":
        if sel_btnext_post == "ba":
            print("あなたはaを押しましたね")
            input_str = msvcrt.getche()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if

        if sel_btnext_post == "bs":
            print("あなたはsを押しましたね")
            input_str = msvcrt.getche()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if

        if sel_btnext_post == "bd":
            print("あなたはdを押しましたね")
            input_str = msvcrt.getche()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if

    if sel_btnext_pre  == "c":
        if sel_btnext_post == "cf":
            print("あなたはfを押しましたね")
            input_str = msvcrt.getche()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if

        if sel_btnext_post == "cg":
            print("あなたはgを押しましたね")
            input_str = msvcrt.getche()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if

        if sel_btnext_post == "ch":
            print("あなたはhを押しましたね")
            input_str = msvcrt.getche()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if
    # end of while

Python win 1文字入力

Python(win)で1文字入力にはmsvcrtモジュールを使いますhttps://docs.python.org/ja/3/library/msvcrt.html

import msvcrt
# msvcrt.getch()のため

for i in range(0, 5):
    input_str = msvcrt.getch()
    input_str = str(input_str)
    print(input_str)
    if input_str == "b'a'":
        print("you push 'a'")
    if input_str == "b'z'":
        print("you push 'z'")

入力した値をstr命令で文字列に変換すると
a→”b’a'”
z→”b’z'”
とかになります

vimのcolor file

fileを解凍してvimのvim81とかvim82とかそれっぽいフォルダのcolorsフォルダに放り込んでください。

編集→色テーマっぽいんとこ。で利用出来ます。反映されない時はvimを起動しなおしてみてください

いつもの手抜き配色でざっくりしか編集してませんが。色の気分は味わえます。気が向いた方はvimの改造しやすそうなcolor fileを改造してみるといいかも。案外簡単に出来ます

Project すぅぃった Python version. NO.02

簡単システム Project すぅぃった の
Python version. No.02 です。Python 3.7で作成
キーを押す分岐を6個にしました
入力IDを二つにしています
分岐が少ないならめんどくさいだけですが
分岐が多くなるにつれ効果の出る仕組みだと思ってます
入力のIDの最初の一文字を取得する方法もいいかも

import os
# os.system('cls')のため
import sys
# sys.exit()のため

#	以下はサンプルプログラム
#	SCENARIO_TEST_02.py

#	選択のID
sel_btnext_pre  = "a"
sel_btnext_post = "a"
#   入力文字列
input_str = ""
while 1:
    if sel_btnext_pre  == "a":
        if sel_btnext_post == "a":
            os.system('cls')
            while 1:
                print("aかsかdか、")
                print("fかgかhを入力してください")
                print("終了:q")
                input_str = input()
                if input_str == "q":
                    sel_btnext_pre  = "a"
                    sel_btnext_post = "quit"
                    break
                if input_str == "a":
                    sel_btnext_pre  = "b"
                    sel_btnext_post = "ba"
                    break
                if input_str == "s":
                    sel_btnext_pre  = "b"
                    sel_btnext_post = "bs"
                    break
                if input_str == "d":
                    sel_btnext_pre  = "b"
                    sel_btnext_post = "bd"
                    break
                if input_str == "f":
                    sel_btnext_pre  = "c"
                    sel_btnext_post = "cf"
                    break
                if  input_str == "g":
                    sel_btnext_pre  = "c"
                    sel_btnext_post = "cg"
                    break
                if  input_str == "h":
                    sel_btnext_pre  = "c"
                    sel_btnext_post = "ch"
                    break
                # end of while
            # end of if
        if sel_btnext_post == "quit":
            print("bye")
            sys.exit()
            # end of if
            
    if sel_btnext_pre  == "b":
        if sel_btnext_post == "ba":
            print("あなたはaを押しましたね")
            input_str = input()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if

        if sel_btnext_post == "bs":
            print("あなたはsを押しましたね")
            input_str = input()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if

        if sel_btnext_post == "bd":
            print("あなたはdを押しましたね")
            input_str = input()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if

    if sel_btnext_pre  == "c":
        if sel_btnext_post == "cf":
            print("あなたはfを押しましたね")
            input_str = input()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if

        if sel_btnext_post == "cg":
            print("あなたはgを押しましたね")
            input_str = input()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if

        if sel_btnext_post == "ch":
            print("あなたはhを押しましたね")
            input_str = input()
            sel_btnext_pre  = "a"
            sel_btnext_post = "a"
            print("")
            # end of if
    # end of while

R02/12/20:ちょいリファクタw

Pythonインストール

プログラミング日記っすw

今日はPythonをインストールしました
Pythonは「Python でつくる ゲーム開発入門講座」
という書籍が、まあゲーム作成の書籍なんですが
僕のプログラミングスタイルと近くて
そのうち、Pythonに挑戦してみたいなあ
と思える書籍で、今日、挑戦を開始しました
プロゲートのPython講座ならたまにやってますw

で、この書籍ではPython3.7を使ってるので
Python3.7をインストールしました
が、現在では最新版ではないので
ググりながら、ちょいちょい試行錯誤しながらやりました
そして、自分のノートPCは32bitwin7なのでw
その辺も試行錯誤しながらやりましたw
って32bitだと昔のシミュレーションゲームも動くんだぜー
現在はシミュレーションゲームPCソフト下火なんだぜー的なw
買って2年くらいです
とか言って動画編集にも挑戦してみたくて
新しいPC購入も検討しはじめたとこです

PythonのデフォIDEは低機能らしく
行番号も表示されないのは敬遠したく
他の開発環境もググってインストールに挑戦

最初は初心向けらしいPyScripterをインストールしてみました
64bitOSしか対象としてないらしいですw

次にPyCharmをインストールしてみました
インストールは出来たんですが
ソフトが英語w
まあ慣れれば大丈夫かもしれないが
スクリプトのコメントんとこに
日本語書いたらエラーw
ググってもよくわからん
次だ次w

とうとコレ来ましたw
Visual Studio Code をインストール
よくわかんないプラグイン入れたり日本語化したり
32bitOS使ってるから何年か前のをインストール
スクリプトのコメントや文字列内に
日本語を入れても動く
あとは修正しても反応しなくて
Visual Studio Code終了して起動しなおしたら反映されるw
とか言って実行ボタンじゃなくデバッグしなおしたら反映されましたw

Pythonは容量が中途半端で
って多すぎでもなくやたら少ないんでもなくなので
最近、よく使うwinタブレットにも入れれそうなんですが
ノートPCでやる方がなんかはかどるんでこのままでいいか。みたいなw
PyScripter動くなら試してみてもいいかも
winタブレットも32bitOSだったら
セカンドマシンとして購入し全然使ってないDELLPCで試すのもいいかも
DELLPCはいっそLinux専用にしようかと思案中なんだがw

後はAtomとSublime Textとかが有名みたいなんで
ブログのネタ収拾兼ねて試してみるかもしれない

Project すぅぃった Python version. NO.01

簡単システム Project すぅぃった の
Python version. No.1 です。Python 3.7で作成
Ruby 版もちょっとやってみましたが
なんかPython版の方がいいかんじw

import os

#	以下はサンプルプログラム
#	SCENARIO_TEST_01.py

#	選択のID
sel_btnext = "a"
input_str = ""
while 1:
    os.system('cls')
    if sel_btnext == "a":
        while 1:
            print("aかsを入力してください")
            print("終了:q")
            input_str = input()
            if input_str == "a":
                sel_btnext = "aa"
                break
            if  input_str == "s":
                sel_btnext = "ab"
                break
            if  input_str == "q":
                sel_btnext = "quit"
                break
            # end of while
        # end of if
        
    if sel_btnext == "aa":
        print("あなたはaを押しましたね")
        input_str = input()
        sel_btnext = "a"
        print("")
        # end of if

    if sel_btnext == "ab":
        print("あなたはsを押しましたね")
        input_str = input()
        sel_btnext = "a"
        print("")
        # end of if

    if sel_btnext == "quit":
        print("bye")
        break
        # end of if

    # end of while

os操作モジュ-ルは
ターミナルをクリアする
os.system(‘cls’)
を使用するのにimportしてます

R02/12/20:ちょいリファクタ

モジュール変数sample:modvar_sample_03_TEST.hsp

repeat 9
newmod obj_common,many_something
loop
repeat 9
tmp_i = cnt
set_mem_ID_many_somet obj_common.tmp_i, 50000 + (tmp_i + 1) * 100
set_mem_name_many_somet obj_common.tmp_i, "" + str(50000 + (tmp_i + 1) * 100) + "th many somet"
set_mem_long_name_many_somet obj_common.tmp_i, "chara common obj"
loop
// 8(9)はexchange用
repeat 9
set_mem_ID_somet obj_common.cnt, 1, 50001 + (cnt + 1) * 100
set_mem_name_somet obj_common.cnt, 1, "" + str(50001 + (cnt + 1) * 100) + "th one somet"
set_mem_long_name_somet obj_common.cnt,1, "character have money"
loop
repeat 9
set_mem_ID_somet obj_common.cnt, 2, 50002 + (cnt + 1) * 100
set_mem_name_somet obj_common.cnt, 2, "" + str(50002 + (cnt + 1) * 100) + "th one somet"
set_mem_long_name_somet obj_common.cnt, 2, "character num battle"
loop
repeat 9
set_mem_ID_somet obj_common.cnt, 3, 50003 + (cnt + 1) * 100
set_mem_name_somet obj_common.cnt, 3, "" + str(50003 + (cnt + 1) * 100) + "th one somet"
set_mem_long_name_somet obj_common.cnt, 3, "character num win"
loop
repeat 9
set_mem_ID_somet obj_common.cnt, 4, 50004 + (cnt + 1) * 100
set_mem_name_somet obj_common.cnt, 4, "" + str(50004 + (cnt + 1) * 100) + "th one somet"
set_mem_long_name_somet obj_common.cnt, 4, "character num lose"
loop
repeat 9
set_mem_ID_somet obj_common.cnt, 5, 50005 + (cnt + 1) * 100
set_mem_name_somet obj_common.cnt, 5, "" + str(50005 + (cnt + 1) * 100) + "th one somet"
set_mem_long_name_somet obj_common.cnt, 5, "character num death"
loop
repeat 9
set_mem_ID_somet obj_common.cnt, 6, 50006 + (cnt + 1) * 100
set_mem_name_somet obj_common.cnt, 6, "" + str(50006 + (cnt + 1) * 100) + "th one somet"
set_mem_long_name_somet obj_common.cnt, 6, "character MAX HP"
loop
repeat 9
set_mem_ID_somet obj_common.cnt, 7, 50007 + (cnt + 1) * 100
set_mem_name_somet obj_common.cnt, 7, "" + str(50007 + (cnt + 1) * 100) + "th one somet"
set_mem_long_name_somet obj_common.cnt, 7, "character cur HP"
loop
// 初期値代入:ほとんど-1代入w
tmp_n = -1
repeat 8,1
tmp_i = cnt
repeat 9
set_mem_value_somet obj_common.cnt, tmp_i, tmp_n
loop
loop
repeat 9
newmod obj_common_yobi,many_something
loop
repeat 9
tmp_i = cnt
set_mem_ID_many_somet obj_common_yobi.tmp_i, 60000 + (tmp_i + 1) * 100
set_mem_name_many_somet obj_common_yobi.tmp_i, "" + str(60000 + (tmp_i + 1) * 100) + "th many somet"
set_mem_long_name_many_somet obj_common_yobi.tmp_i, "chara common obj yobi"
loop
repeat 8,1
tmp_i=cnt
repeat 9
set_mem_ID_somet obj_common_yobi.cnt, tmp_i, 60000 + tmp_i + (cnt + 1) * 100
set_mem_name_somet obj_common_yobi.cnt, tmp_i, "" + str(60000 + tmp_i + (cnt + 1) * 100) + "th one somet"
loop
loop
repeat 9
set_mem_long_name_somet obj_common_yobi.cnt, 1, "character 状態"
// -1 キャラが存在しない 1 通常 2 戦闘不能
set_mem_long_name_somet obj_common_yobi.cnt, 2, "character 予備 2nd"
set_mem_long_name_somet obj_common_yobi.cnt, 3, "character 予備 3rd"
set_mem_long_name_somet obj_common_yobi.cnt, 4, "character 予備 4th"
set_mem_long_name_somet obj_common_yobi.cnt, 5, "character 予備 5th"
set_mem_long_name_somet obj_common_yobi.cnt, 6, "character 予備 6th"
set_mem_long_name_somet obj_common_yobi.cnt, 7, "character 予備 7th"
set_mem_long_name_somet obj_common_yobi.cnt, 8, "character 予備 8th"
loop
// 初期値代入:ほとんど-1代入w
tmp_n = -1
repeat 8,1
tmp_i = cnt
repeat 9
set_mem_value_somet obj_common_yobi.cnt, tmp_i, tmp_n
loop
loop
#if 0
repeat 9
logmes "-- common class --"
logmes "ID   : " + get_mem_ID_many_somet(obj_common.cnt)
logmes "name : " + get_mem_name_many_somet(obj_common.cnt)
logmes "lname: " + get_mem_long_name_many_somet(obj_common.cnt)
logmes "-- sub mod --"
	tmp_i = cnt
	repeat MAX_OBJ@many_something
	tmp_ii=get_mem_ID_somet(obj_common.tmp_i, cnt)
	if tmp_ii != -1{
		logmes "- ID("+cnt+") : " + get_mem_ID_somet(obj_common.tmp_i, cnt)
		logmes "- name : " + get_mem_name_somet(obj_common.tmp_i, cnt)
		logmes "- lname: " + get_mem_long_name_somet(obj_common.tmp_i, cnt)
		logmes "- value: " + get_mem_value_somet(obj_common.tmp_i, cnt)
		logmes "------"
	}
	loop
loop
#endif
#if 0
repeat 9
logmes "-- common class --"
logmes "ID   : " + get_mem_ID_many_somet(obj_common_yobi.cnt)
logmes "name : " + get_mem_name_many_somet(obj_common_yobi.cnt)
logmes "lname: " + get_mem_long_name_many_somet(obj_common_yobi.cnt)
logmes "-- sub mod --"
	tmp_i = cnt
	repeat MAX_OBJ@many_something
	tmp_ii=get_mem_ID_somet(obj_common_yobi.tmp_i, cnt)
	if tmp_ii != -1{
		logmes "- ID("+cnt+") : " + get_mem_ID_somet(obj_common_yobi.tmp_i, cnt)
		logmes "- name : " + get_mem_name_somet(obj_common_yobi.tmp_i, cnt)
		logmes "- lname: " + get_mem_long_name_somet(obj_common_yobi.tmp_i, cnt)
		logmes "- value: " + get_mem_value_somet(obj_common_yobi.tmp_i, cnt)
		logmes "------"
	}
	loop
loop
#endif
/*
// global variable
characters_turn			= 1
characters_sum_battle	= 0
characters_sum_win		= 0
characters_sum_lose		= 0
characters_sum_death	= 0
characters_sum_LVUP		= 0
characters_sum_pos_get	= 0
characters_sum_pos_use	= 0
*/
repeat 40
newmod obj_class,many_something
loop
// 余り8(9)はexchange用
repeat 40
tmp_i  = cnt \ 10
tmp_ii =cnt / 10 + 1
set_mem_ID_many_somet obj_class.cnt, tmp_ii * 10000 + (tmp_i + 1) * 100
set_mem_name_many_somet obj_class.cnt, "" + str(tmp_ii * 10000 + (tmp_i + 1) * 100) + "th many somet"
set_mem_long_name_many_somet obj_class.cnt, "each character"
loop
// 命令 半角スペース オブジェクト ドット オブジェクトのインデックス カンマ インデックス カンマ バリュー
repeat 40
tmp_i  = cnt \ 10
tmp_ii = cnt / 10 + 1
set_mem_ID_somet obj_class.cnt,1, tmp_ii * 10000 + (tmp_i + 1) * 100 + 1
set_mem_name_somet obj_class.cnt,1, "" + str(tmp_ii * 10000 + (tmp_i + 1) * 100 + 1) + "th many somet"
set_mem_long_name_somet obj_class.cnt,1,"class type"
loop
repeat 10
tmp_str = "FIRE"
set_mem_value_somet obj_class.cnt, 1, tmp_str
loop
repeat 10
tmp_str = "WIND"
tmp_index = 10 + cnt
set_mem_value_somet obj_class.tmp_index, 1, tmp_str
loop
repeat 10
tmp_str = "THUNDER"
tmp_index = 20 + cnt
set_mem_value_somet obj_class.tmp_index, 1, tmp_str
loop
repeat 10
tmp_str = "LIGHT"
tmp_index = 30 + cnt
set_mem_value_somet obj_class.tmp_index, 1, tmp_str
loop
repeat 40
tmp_i  = cnt \ 10
tmp_ii = cnt / 10 + 1
set_mem_ID_somet obj_class.cnt,2, tmp_ii * 10000 + (tmp_i + 1) * 100 + 2
set_mem_name_somet obj_class.cnt,2, "" + str(tmp_ii * 10000 + (tmp_i + 1) * 100 + 2) + "th many somet"
set_mem_long_name_somet obj_class.cnt, 2, "each class no"
tmp_int = cnt \ 10 + 1
set_mem_value_somet obj_class.cnt, 2, tmp_int
loop
repeat 40
tmp_i  = cnt \ 10
tmp_ii = cnt / 10 + 1
set_mem_ID_somet obj_class.cnt, 3, tmp_ii * 10000 + (tmp_i + 1) * 100 + 3
set_mem_name_somet obj_class.cnt, 3, "" + str(tmp_ii * 10000 + (tmp_i + 1) * 100 + 3) + "th many somet"
set_mem_long_name_somet obj_class.cnt, 3, "each class battle"
tmp_int = 256.0
set_mem_value_somet obj_class.cnt, 3, tmp_int
loop
repeat 40
tmp_i  = cnt \ 10
tmp_ii = cnt / 10 + 1
set_mem_ID_somet obj_class.cnt,4, tmp_ii * 10000 + (tmp_i + 1) * 100 + 4
set_mem_name_somet obj_class.cnt,4, "" + str(tmp_ii * 10000 + (tmp_i + 1) * 100 + 4) + "th many somet"
set_mem_long_name_somet obj_class.cnt, 4, "each class level"
tmp_int = 123
set_mem_value_somet obj_class.cnt, 4, tmp_int
loop
repeat 40
tmp_i  = cnt \ 10
tmp_ii = cnt / 10 + 1
set_mem_ID_somet obj_class.cnt, 5, tmp_ii * 10000 + (tmp_i + 1) * 100 + 5
set_mem_name_somet obj_class.cnt, 5, "" + str(tmp_ii * 10000 + (tmp_i + 1) * 100 + 5) + "th many somet"
set_mem_long_name_somet obj_class.cnt, 5, "each class exp"
tmp_int = 234
set_mem_value_somet obj_class.cnt, 5, tmp_int
loop
repeat 40
tmp_i  = cnt \ 10
tmp_ii = cnt / 10 + 1
set_mem_ID_somet obj_class.cnt, 6, tmp_ii * 10000 + (tmp_i + 1) * 100 + 6
set_mem_name_somet obj_class.cnt, 6, "" + str(tmp_ii * 10000 + (tmp_i + 1) * 100 + 6) + "th many somet"
set_mem_long_name_somet obj_class.cnt, 6, "each cost training"
tmp_int = cnt*100
set_mem_value_somet obj_class.cnt, 6, tmp_int
loop
repeat 40
tmp_i  = cnt \ 10
tmp_ii = cnt / 10 + 1
set_mem_ID_somet obj_class.cnt, 7, tmp_ii * 10000 + (tmp_i + 1) * 100 + 7
set_mem_name_somet obj_class.cnt, 7, "" + str(tmp_ii * 10000 + (tmp_i + 1) * 100 + 7) + "th many somet"
set_mem_long_name_somet obj_class.cnt, 7, "each HP"
tmp_int = cnt*100
set_mem_value_somet obj_class.cnt, 7, tmp_int
loop
// 命令 ドット オブジェクトのインデックス 半角スペース オブジェクト カンマ インデックス カンマ バリュー
// 初期値代入:ほとんど-1代入w
tmp_n = -1
repeat 5,3
tmp_i = cnt
repeat 40
set_mem_value_somet obj_class.cnt, tmp_i, tmp_n
loop
loop
#if 0
repeat 40
	logmes "-- each character --"
	logmes "ID(" + cnt + ") : " + get_mem_ID_many_somet(obj_class.cnt)
	logmes "name : " + get_mem_name_many_somet(obj_class.cnt)
	logmes "lname: " + get_mem_long_name_many_somet(obj_class.cnt)
	logmes "-- sub mod --"
	tmp_i = cnt
	repeat MAX_OBJ@many_something
	tmp_ii=get_mem_ID_somet(obj_class.tmp_i, cnt)
	if tmp_ii != -1{
		logmes "- ID("+cnt+") : " + get_mem_ID_somet(obj_class.tmp_i, cnt)
		logmes "- name : " + get_mem_name_somet(obj_class.tmp_i, cnt)
		logmes "- lname: " + get_mem_long_name_somet(obj_class.tmp_i, cnt)
		logmes "- value: " + get_mem_value_somet(obj_class.tmp_i, cnt)
		logmes "------"
	}
	loop
loop
#endif
repeat 40
newmod obj_class_yobi,many_something
loop
// 余り8(9)はexchange用
repeat 40
tmp_i  = cnt \ 10
tmp_ii =cnt / 10 + 1
set_mem_ID_many_somet obj_class_yobi.cnt, 100000 + tmp_ii * 10000 + (tmp_i + 1) * 100
set_mem_name_many_somet obj_class_yobi.cnt, "" + str(100000 + tmp_ii * 10000 + (tmp_i + 1) * 100) + "th many somet"
set_mem_long_name_many_somet obj_class_yobi.cnt, "each character yobi"
loop
repeat 40
tmp_i  = cnt \ 10
tmp_ii = cnt / 10 + 1
set_mem_ID_somet obj_class_yobi.cnt,1, 100000 + tmp_ii * 10000 + (tmp_i + 1) * 100 + 1
set_mem_name_somet obj_class_yobi.cnt,1, "" + str(100000 + tmp_ii * 10000 + (tmp_i + 1) * 100 + 1) + "th many somet"
set_mem_long_name_somet obj_class_yobi.cnt,1,"class type"
loop
repeat 10
tmp_str = "FIRE"
set_mem_value_somet obj_class_yobi.cnt, 1, tmp_str
loop
repeat 10
tmp_str = "WIND"
tmp_index = 10 + cnt
set_mem_value_somet obj_class_yobi.tmp_index, 1, tmp_str
loop
repeat 10
tmp_str = "THUNDER"
tmp_index = 20 + cnt
set_mem_value_somet obj_class_yobi.tmp_index, 1, tmp_str
loop
repeat 10
tmp_str = "LIGHT"
tmp_index = 30 + cnt
set_mem_value_somet obj_class_yobi.tmp_index, 1, tmp_str
loop
repeat 40
tmp_i  = cnt \ 10
tmp_ii = cnt / 10 + 1
tmp_j  = cnt
repeat 8,2
set_mem_ID_somet obj_class_yobi.tmp_j,cnt, 100000 + tmp_ii * 10000 + (tmp_i + 1) * 100 + cnt
set_mem_name_somet obj_class_yobi.tmp_j,cnt, "" + str(100000 + tmp_ii * 10000 + (tmp_i + 1) * 100 + cnt) + "th many somet"
tmp_int = tmp_j \ 10 + 1
set_mem_value_somet obj_class_yobi.tmp_j, cnt, tmp_int
loop
loop
repeat 40
set_mem_long_name_somet obj_class_yobi.cnt, 2, "each class yobi 1st"
set_mem_long_name_somet obj_class_yobi.cnt, 3, "each class yobi 2nd"
set_mem_long_name_somet obj_class_yobi.cnt, 4, "each class yobi 3rg"
set_mem_long_name_somet obj_class_yobi.cnt, 5, "each class yobi 4th"
set_mem_long_name_somet obj_class_yobi.cnt, 6, "each class yobi 5th"
set_mem_long_name_somet obj_class_yobi.cnt, 7, "each class yobi 6th"
set_mem_long_name_somet obj_class_yobi.cnt, 8, "each class yobi 7th"
set_mem_long_name_somet obj_class_yobi.cnt, 9, "each class yobi 8th"
loop
// 初期値代入:ほとんど-1代入w
tmp_n = -1
repeat 8,2
tmp_i = cnt
repeat 40
set_mem_value_somet obj_class_yobi.cnt, tmp_i, tmp_n
loop
loop
#if 0
repeat 40
	logmes "-- each character --"
	logmes "ID(" + cnt + ") : " + get_mem_ID_many_somet(obj_class_yobi.cnt)
	logmes "name : " + get_mem_name_many_somet(obj_class_yobi.cnt)
	logmes "lname: " + get_mem_long_name_many_somet(obj_class_yobi.cnt)
	logmes "-- sub mod --"
	tmp_i = cnt
	repeat MAX_OBJ@many_something
	tmp_ii=get_mem_ID_somet(obj_class_yobi.tmp_i, cnt)
	if tmp_ii != -1{
		logmes "- ID("+cnt+") : " + get_mem_ID_somet(obj_class_yobi.tmp_i, cnt)
		logmes "- name : " + get_mem_name_somet(obj_class_yobi.tmp_i, cnt)
		logmes "- lname: " + get_mem_long_name_somet(obj_class_yobi.tmp_i, cnt)
		logmes "- value: " + get_mem_value_somet(obj_class_yobi.tmp_i, cnt)
		logmes "------"
	}
	loop
loop
#endif

モジュール変数sample:modvar_sample_03_subr.hsp

#module one_something mem_ID_somet, mem_name_somet, mem_long_name_somet, mem_value_somet
#modinit
	mem_ID_somet = -1
	sdim mem_name_somet,32
	mem_name_somet = "nil -4"
	sdim mem_long_name_somet,1
	mem_value_somet = 0.0
	return
#modfunc  set_mem_ID_somet_mod int ___p
	mem_ID_somet = ___p
	return
#modcfunc get_mem_ID_somet_mod
	return mem_ID_somet
#modfunc  set_mem_name_somet_mod str ___p_str
	mem_name_somet = ___p_str
	return
#modcfunc get_mem_name_somet_mod
	return mem_name_somet
#modfunc  set_mem_long_name_somet_mod str ___p_str
	mem_long_name_somet = ___p_str
	return
#modcfunc get_mem_long_name_somet_mod
	return mem_long_name_somet
#modfunc  set_reginfo_somet_mod int ___p1, str ___p2_str, str ___p3_str
	mem_ID_somet   = ___p1
	mem_name_somet = ___p2_str
	mem_long_name_somet = ___p3_str
	return
#modfunc  get_reginfo_somet_mod var ___r1, var ___r2_str, var ___r3_str
	___r1 = mem_ID_somet
	___r2_str = mem_name_somet
	___r3_str = mem_long_name_somet
	return
#modfunc  set_mem_value_somet_mod var ___p_var
	logmes "set one somet value : " + mem_ID_somet + " : " + mem_long_name_somet
	mem_value_somet = ___p_var
	return
#modcfunc get_mem_value_somet_mod
	logmes "get one somet value : " + mem_ID_somet + " : " + mem_long_name_somet
	return mem_value_somet
#global
#if 0
newmod fire_tmp_int,one_something
set_mem_ID_somet_mod fire_tmp_int,1
set_mem_name_somet_mod fire_tmp_int,"1st somet"
set_mem_long_name_somet_mod fire_tmp_int,"fire int"
tmp_a=123
set_mem_value_somet_mod fire_tmp_int,tmp_a
newmod fire_tmp_dbl,one_something
set_mem_ID_somet_mod fire_tmp_dbl,2
set_mem_name_somet_mod fire_tmp_dbl,"2nd somet"
set_mem_long_name_somet_mod fire_tmp_dbl,"fire dbl"
tmp_b=456.789
set_mem_value_somet_mod fire_tmp_dbl,tmp_b
newmod fire_tmp_str,one_something
set_mem_ID_somet_mod fire_tmp_str,3
set_mem_name_somet_mod fire_tmp_str,"3rd somet"
set_mem_long_name_somet_mod fire_tmp_str,"fire str"
tmp_c="batake"
set_mem_value_somet_mod fire_tmp_str,tmp_c
logmes "id   : " + get_mem_ID_somet_mod(fire_tmp_int)
logmes "name : " + get_mem_name_somet_mod(fire_tmp_int)
logmes "lname: " + get_mem_long_name_somet_mod(fire_tmp_int)
logmes "value: " + get_mem_value_somet_mod(fire_tmp_int)
logmes "id   : " + get_mem_ID_somet_mod(fire_tmp_dbl)
logmes "name : " + get_mem_name_somet_mod(fire_tmp_dbl)
logmes "lname: " + get_mem_long_name_somet_mod(fire_tmp_dbl)
logmes "value: " + get_mem_value_somet_mod(fire_tmp_dbl)
logmes "id   : " + get_mem_ID_somet_mod(fire_tmp_str)
logmes "name : " + get_mem_name_somet_mod(fire_tmp_str)
logmes "lname: " + get_mem_long_name_somet_mod(fire_tmp_str)
logmes "value: " + get_mem_value_somet_mod(fire_tmp_str)
newmod wind_tmp,one_something
newmod wind_tmp,one_something
newmod wind_tmp,one_something
set_reginfo_somet_mod wind_tmp.0,4,"4th somet","wind int"
set_reginfo_somet_mod wind_tmp.1,5,"5th somet","wind dbl"
set_reginfo_somet_mod wind_tmp.2,6,"6th somet","wind str"
tmp_a = 321
set_mem_value_somet_mod wind_tmp.0,tmp_a
tmp_b = 987.654
set_mem_value_somet_mod wind_tmp.1,tmp_b
tmp_c = "tack"
set_mem_value_somet_mod wind_tmp.2,tmp_c
tmp_r1=""
tmp_r2=""
tmp_r3=""
get_reginfo_somet_mod wind_tmp.0,tmp_r1,tmp_r2,tmp_r3
logmes "ID : " + tmp_r1 + " name : " + tmp_r2 + " lname : " + tmp_r3
logmes "value : " + get_mem_value_somet_mod(wind_tmp.0)
get_reginfo_somet_mod wind_tmp.1,tmp_r1,tmp_r2,tmp_r3
logmes "ID : " + tmp_r1 + " name : " + tmp_r2 + " lname : " + tmp_r3
logmes "value : " + get_mem_value_somet_mod(wind_tmp.1)
get_reginfo_somet_mod wind_tmp.2,tmp_r1,tmp_r2,tmp_r3
logmes "ID : " + tmp_r1 + " name : " + tmp_r2 + " lname : " + tmp_r3
logmes "value : " + get_mem_value_somet_mod(wind_tmp.2)
#endif

モジュール変数sample:modvar_sample_03_module.hsp

#include "modvar_sample_03_subr.hsp"
#module many_something mem_ID_m_somet, mem_name_m_somet, mem_long_name_m_somet, mem_obj_m_somet 
#define MAX_OBJ 10
#modinit
	mem_ID_m_somet = -1
	sdim mem_name_m_somet ,30
	mem_name_m_somet = "nil -5"
	mem_long_name_m_somet = ""
	repeat MAX_OBJ
		newmod mem_obj_m_somet,one_something
	loop
	return
#modfunc  set_mem_ID_many_somet int __p
	mem_ID_m_somet = __p
	return
#modcfunc get_mem_ID_many_somet
	return mem_ID_m_somet
#modfunc  set_mem_name_many_somet str __p_str
	mem_name_m_somet = __p_str
	return
#modcfunc get_mem_name_many_somet
	return mem_name_m_somet
#modfunc  set_mem_long_name_many_somet str __p_str
	mem_long_name_m_somet = __p_str
	return
#modcfunc get_mem_long_name_many_somet
	return mem_long_name_m_somet
////////////////////////////////////////////////////////////
// one something に委譲
////////////////////////////////////////////////////////////
#modfunc  set_mem_ID_somet int __p_index,int __p
	set_mem_ID_somet_mod mem_obj_m_somet.__p_index,__p
	return
#modcfunc get_mem_ID_somet int __p_index
	return get_mem_ID_somet_mod(mem_obj_m_somet.__p_index)
#modfunc  set_mem_name_somet int __p_index,str __p_str
	set_mem_name_somet_mod mem_obj_m_somet.__p_index,__p_str
	return
#modcfunc get_mem_name_somet int __p_index
	return get_mem_name_somet_mod(mem_obj_m_somet.__p_index)
#modfunc  set_mem_long_name_somet int __p_index, str __p_str
	set_mem_long_name_somet_mod mem_obj_m_somet.__p_index,__p_str
	return
#modcfunc get_mem_long_name_somet int __p_index
	return get_mem_long_name_somet_mod(mem_obj_m_somet.__p_index)
#modfunc  set_reginfo_somet int __p_index, int __p1, str __p2_str, str __p3_str
	set_mem_ID_somet_mod mem_obj_m_somet.__p_index,__p1
	set_mem_name_somet_mod mem_obj_m_somet.__p_index,__p2_str
	set_mem_long_name_somet_mod mem_obj_m_somet.__p_index,__p3_str
	return
#modfunc  get_reginfo_somet int __p_index, var __r1, var __r2_str, var __r3_str
	__r1 = get_mem_ID_somet_mod(mem_obj_m_somet.__p_index)
	__r2_str = get_mem_name_somet_mod(mem_obj_m_somet.__p_index)
	__r3_str = get_mem_long_name_somet_mod(mem_obj_m_somet.__p_index)
	return
#modfunc  set_mem_value_somet int __p_index, var __p_var
	set_mem_value_somet_mod mem_obj_m_somet.__p_index,__p_var
	return
#modcfunc get_mem_value_somet int __p_index
	return get_mem_value_somet_mod(mem_obj_m_somet.__p_index)
	/*
#modfunc  set_mem_value_somet_mod var ___p_var
	mem_value_somet = ___p_var
	return
#modcfunc get_mem_value_somet_mod
	return mem_value_somet
	*/
#global
#include "modvar_sample_03_TEST.hsp"