HSPでRPG
■ このスレッドは過去ログ倉庫に格納されています
0001HSP
04/04/25 23:19ID:FQRAx6j0でもやりたいんです!!僕はHSPでブロック崩し(アルカノイド)
ぐらいなら作ったことあります。
今のところ、オープニングまで作ったのですが、どなたか僕に
HSPの基礎からすべてを叩き込んでくれませんか??
お願いします。
0270名前は開発中のものです。
2007/03/12(月) 12:40:58ID:zNGWNd+Lその後、#enumで振った名前でアクセスすれば構造体みたいなもんだろ。
0271名前は開発中のものです。
2007/03/13(火) 06:16:11ID:K8oTsumj#define gs(%1,%2,%3,%4=',') getstr %1,%2,%3,%4:%3+strsize
#module
//IDに合わせた要素に文字列データを入れていく
//p1=ID順に入る変数名 p2=元の文字列データ statに一番大きいIDが入る
#deffunc setlst array list,str temp,local maxid,local _temp
_temp=temp:sdim list :notesel _temp
repeat noteinfo(0)
noteget n,cnt
getstr id,n,0,','
list(int(id))=strmid(n,strsize,strlen(n))
if int(id)>maxid {maxid=int(id)}
loop
noteunsel
return maxid
#global
load="10,ポーション,100,5,回復(小)\\雑魚が良く落とす\n15,回復剤,200,10,回復(大)\n"
load+"20,解毒剤,320,30,毒消し\\たまに効かない\n100,短剣,2000,100,80,5,5,武器\\一番弱い武器"
setlst item,load:itemmax=stat+1 ;使われてる要素の数はID+1になる
load="1,スライム,10,3,5,10,10,10,15\n10,レッドスライム,15,10,20,15,15\n50,モンスター,25,30,120,20"
setlst mons,load:monsmax=stat+1
load="1,名無しA,5,100,30,5000,12345\n5,ななしB,10,300,200,10000,23456"
setlst play,load:playmax=stat+1
//プレーヤーIDに対応した所持アイテムリストIDが使われる
load="1,3,100,1,10,3,20,5\n5,4,15,1,10,10,20,5,100,2" ;所持アイテムリストID,種類数,アイテムID,個数,・・・
setlst pitem,load:pitemax=stat+1
mess="モンスター名","HP","MP","EXP","所持item1","所持item2","所持item3","所持item4"
pmess="名前","レベル","HP","MP","所持金","EXP","所持アイテム種類数","個","アイテム個数"
imess="名前","値段","重さ","説明","名前","値段","重さ","攻撃力","防御力","魔力","説明"
>272 に続く・・・
0272271
2007/03/13(火) 06:19:51ID:K8oTsumjrepeat playmax:
temp=play(cnt):if temp="" {continue } ;存在しないIDは飛ばす
mes "プレーヤーID: "+cnt:index=0
repeat 6
gs p,temp,index:mes pmess(cnt)+": "+p ;プレーヤーステータス表示
loop
index=0 :pi=pitem(cnt) :gs i,pi,index :mes pmess(6)+": "+i ;所持品の種類
repeat int(i),7:
gs i,pi,index :gs is,pi,index ;アイテムIDと所持数
itemstr=item(int(i)) :getstr n,itemstr,0,',' ;アイテムIDからアイテムデータ取り出し
y=ginfo(23) :button gosub n,*item_mes :butid(stat)=int(i)
pos 70,y:mes is+pmess(7):pos 0,y+24:loop:mes:loop:
pos 300,0:
repeat monsmax
:m=mons(cnt):if m="" {continue }:
index=0:mes "モンスターID: "+cnt:
repeat 4:gs d,m,index:mes mess(cnt)+": "+d:loop ;モンスターデータ表示
repeat 4,4:gs d,m,index:s=stat:itemstr=item(int(d)):getstr n,itemstr,0,',' ;モンスターデータからアイテム名を収得
mes mess(cnt)+": "+n:if s!',' {break}:loop:mes:loop:stop ; , が無かったら所持アイテム終わり
*item_mes:
iid=butid(stat) :a=item(iid)
c=0:screen 1,200,96+(iid>=100)*100,8+16,300,300:cls 1
repeat 4+(iid>=100)*3,(iid>=100)*4 ;ID100以上は装備品として扱う
gs b,a,c :cc=0:bb=""
repeat:gs d,b,cc,'\\' ; "\\" これを改行として文字列操作
if stat!'\\'{bb+d:break}
bb+d+"\n"
loop
if imess(cnt)="名前"{title imess(cnt)+": "+bb}else{mes imess(cnt)+": "+bb}
loop:gsel 0:return
0273名前は開発中のものです。
2007/03/13(火) 06:49:46ID:K8oTsumj>それともインデックスを用意しておいて、指定したイニシャルと同じアイテムリストを全部バッファに
>読み込んで比較してアイテムの情報を読み込む???
IDを振ってそれを基準に処理すればいんじゃね?
IDで管理しとけばアイテムの名前変えても他を弄る必要ないし
追加削除してもIDを変えなければ直接関係有る物しか弄らなくていい
0274名前は開発中のものです。
2007/03/13(火) 21:34:56ID:lw1fUGj9>>271
参考にします。ありがとうございました。
それから、ソースを書いてもらってすいません。
よくできていて感心してしまいました・・・
0275名前は開発中のものです。
2007/03/14(水) 02:09:15ID:pkgaAWGt#define PLAYMAX 10
#enum PLAY1=0
#enum PLAY2
#enum playNAME=0
#enum playLEVEL=6
#enum playHP
#enum playMP
#enum playEN
#enum playEX
#enum playTEMP
#enum playtempEND=playTEMP+10
#enum playEND
#enum playITEM
#enum playitemEND=playITEM+20
#enum playdatEND
pmess="名前","レベル","HP","MP","所持金","EXP","所持アイテム種類数","個","アイテム個数"
load="10,ポーション,100,5,回復(小)\\雑魚が良く落とす\n15,回復剤,200,10,回復(大)\n"
load+"20,解毒剤,320,30,毒消し\\たまに効かない\n100,短剣,2000,100,80,5,5,武器\\一番弱い武器"
setlst item,load:itemmax=stat+1:dim play,playdatEND,PLAYMAX:n="名無しA":
memcpy play,n,strlen(n),playdatEND*4*PLAY1,0:play(playLEVEL,PLAY1)=5,100,30,5000,12345
play(playITEM,PLAY1)=100,1,10,3,20,5:n="ななしB":memcpy play,n,strlen(n),playdatEND*4*PLAY2,0
play(playLEVEL,PLAY2)=10,300,200,10000,23456:play(playITEM,PLAY2)=15,1,10,10,20,5,100,2
repeat playmax:if play(0,cnt)=0 {continue } ;存在しないIDは飛ばす
pid=cnt:mes "プレーヤーID: "+pid :sdim n,5*20:memcpy n,play,20,0,(playdatEND*4)*pid
mes pmess(0)+": "+n:repeat playTEMP-playLEVEL:mes pmess(cnt+1)+": "+play(cnt+playLEVEL,pid) :loop:b=""
repeat :if play(playITEM+cnt*2,pid)=0{icnt=cnt:break}
i=play(playITEM+cnt*2,pid):is=play(playITEM+cnt*2+1,pid) ;アイテムIDと所持数
itemstr=item(i) :getstr n,itemstr,0,',' ;アイテムIDからアイテムデータ取り出し
b+n+" "+is+pmess(7)+"\n":loop:mes pmess(6)+": "+icnt:mes b:loop:stop
↑271のモジュールを使うのが前提
0276名前は開発中のものです。
2007/05/17(木) 20:54:25ID:QslptYDj0277名前は開発中のものです。
2007/05/17(木) 21:02:55ID:SRf6VBZ+0278名前は開発中のものです。
2007/05/17(木) 22:52:18ID:QslptYDj0279名前は開発中のものです。
2008/07/20(日) 19:07:16ID:2Ijm4eAVこの人が作ったRPGの紹介動画、ニコニコ動画のコンテストかなんかで賞貰ってたよ
そんな人が数年前にこんなレスしてたってのはなんかあれだね、面白いね
俺も頑張らないと
0280名前は開発中のものです。
2009/08/10(月) 13:04:26ID:sFddjEWZbabelっていうゲームはHSPらしいが
0281名前は開発中のものです。
2009/08/11(火) 00:41:24ID:q2fvLOcRちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこ
ちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこ
ちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこ
ちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこちんこ
0282名前は開発中のものです。
2009/08/16(日) 12:34:20ID:mUJcX4L/まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
0283名前は開発中のものです。
2009/08/17(月) 18:09:14ID:rLW8yDpb0284名前は開発中のものです。
2010/02/04(木) 05:44:42ID:AjRDC0nc0285名前は開発中のものです。
2010/02/04(木) 11:10:06ID:j8+pLPQE0286名前は開発中のものです。
2010/02/06(土) 19:45:13ID:eBoJBxgsこの文字だけのRPGすげーカッケェーっすね
センスがパネェっす
0287名前は開発中のものです。
2010/02/11(木) 17:05:34ID:w5NM98dn既存のエディタを借用すれば楽だけどせっかくなので全部自作を目指すのだった
0288名前は開発中のものです。
2010/02/12(金) 15:57:35ID:etgrazeUexeファイルにするときはコンパイルするってこと出来ないかな
0289名前は開発中のものです。
2010/02/16(火) 00:46:29ID:Tfo84wDg0290名前は開発中のものです。
2010/02/20(土) 01:33:10ID:tShVZmmAそれではお元気で(・∀・)/ヾ〜
0291名前は開発中のものです。
2010/02/21(日) 08:41:22ID:zQLFxu4y0292名前は開発中のものです。
2010/06/18(金) 23:39:46ID:x/+wsHqQ0293名前は開発中のものです。
2010/06/26(土) 17:41:26ID:p8tPjhCB音楽とか作るの苦手だわ、俺
0294名前は開発中のものです。
2010/08/05(木) 16:31:18ID:+9m6bvWS画面がみずらくなってきました。
文だけを別ファイルにするほうほうとかはあるのですか?
0295名前は開発中のものです。
2010/08/05(木) 22:42:17ID:WhyL8tJg0296名前は開発中のものです。
2010/08/29(日) 10:17:26ID:Oy6sz1B5「みずらく」じゃなくて「みづらく」な
0297名前は開発中のものです。
2010/10/06(水) 01:38:18ID:p01vOLw30298名前は開発中のものです。
2010/10/09(土) 21:35:38ID:nr26u1G70299名前は開発中のものです。
2011/01/06(木) 22:25:24ID:FIV/E0G/ttp://sekisekki.net/index.htm
直感的操作で簡単なゲームが作れます。 簡単に配布可能な状態に出力することができます。
(HSP製のソースコード付きで、スクリプトの知識があれば自由度の非常に高いカスタマイズ
ができます)
他にも仲間預かり機能(100人も)や、仲間の状態/状態異常を細かく設定できたり、
乗り物が作れたりゲーム中に画像を差し込んだり、回転やフラッシュなどのエフェクト
なんかも簡単に作れる様です。戦闘はデフォだとドラクエ系。
移動は矢印キーの他に、キャラがマウスを追っかけたりするとのこと。
他にはオートアクションというのがあってオリジナルシステムの製作に役に立つかも
しれない機能です。これは、マップエディタで設定することで、「マップに入った時・
出た時・一歩歩いた時・戦闘開始前」に自動的に実行されるアクションを設定できる
機能です。
■分からないことや要望は掲示板へどうぞ。他にもいろいろ進化中みたい。
■ このスレッドは過去ログ倉庫に格納されています