HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
1126
くりるbsaveの後ろに...5未解決


くりる

リンク

2018/11/26(Mon) 20:42:15|NO.85887

bsaveについてです。
bsaveでセーブデータを保存しているのですが(hsp3dishのため)なぜか後ろに変な文字が入ります。
↓ソース

#include "hsp3dish.as" *config dim 仲間id,10 sdim 仲間名前,64,10 dim 仲間最大hp,10 dim 仲間hp,10 dim 仲間発動sp,10 dim 仲間sp,10 dim 仲間攻撃力,10 dim 仲間防御力,10 dim 仲間スキル,10,3;仲間番号,スキル の順 dim 仲間必殺技,10 *titlescreen redraw 0 buffer 1 celload "logo.png",1 gsel 0 boxf gmode 4,16,16,255 gcopy 1,0,0,320,100 objsize 100,30 pos 100,300 button "スタート",*start button "セーブ",*save redraw 1 stop *start redraw 0 clrobj boxf redraw 1 stop *save セーブ内容="" for i,0,10,1 セーブ内容+=""+仲間id(i)+"\n"//1~10 next for i,0,10,1 セーブ内容+=仲間名前(i)+"\n"//11~20 next for i,0,10,1 セーブ内容+=""+仲間最大hp(i)+"\n"//21~30 next for i,0,10,1 セーブ内容+=""+仲間hp(i)+"\n"//31~40 next for i,0,10,1 セーブ内容+=""+仲間発動sp(i)+"\n"//41~50 next for i,0,10,1 セーブ内容+=""+仲間sp(i)+"\n"//51~60 next for i,0,10,1 セーブ内容+=""+仲間攻撃力(i)+"\n"//61~70 next for i,0,10,1 セーブ内容+=""+仲間防御力(i)+"\n"//71~80 next for i,0,10,1//キャラ数 for j,0,3,1//スキル数 セーブ内容+=""+仲間スキル(i,j)+"\n"//0,0→0,1→0,2→1,0・・・ next //81~110 next for i,0,10,1 セーブ内容+=""+仲間必殺技(i)+"\n"//111~120 next bsave "save.sav",セーブ内容
これでセーブを押すとsave.savというファイルにセーブされるはずです。
一応使うところ(120行目まで)は普通なのですがその後に変なのが入ります。
どうすれば治るのでしょうか。わかりやすく教えてください。



この記事に返信する


Him

リンク

2018/11/26(Mon) 23:22:26|NO.85888

サイズを指定する
	bsave "save.sav" ,セーブ内容 ,strlen(セーブ内容)

普通はnotesaveを使う
	notesel セーブ内容
	notesave "save.sav"



くりる

リンク

2018/11/27(Tue) 07:15:19|NO.85889

hspdishなのでbsaveをつかっています。
セーブ内容は変わるのですがそれでも出来るのでスカ?



MillkeyStars

リンク

2018/11/27(Tue) 13:03:34|NO.85890

HSPDish が「セーブ内容」(変数)を 4096バイトでメモリを実際に確保してるから bsave でサイズを指定しない場合、4096 バイトとして保存される。
HSPシステムが「セーブ内容」(変数)を規定のサイズ(64バイト)で初期化を行うが、それを超えた部分については初期化していない。
(変数自動拡張も同じで、拡張部分のメモリは初期化するが、それを超えている部分は初期化されない)
(これは、HSPのバグではなく、仕様です)

Him さんが言う通り、

bsave "save.sav",セーブ内容,strlen(セーブ内容)
としてスクリプトを実行してください。



くりる

リンク

2018/11/28(Wed) 21:34:55|NO.85898

あっそういうことか!
この
strlen(セーブ内容)
という部分はただの注釈かと思ってました。
ソースだったんですね!
あと、notegetとnoteselはhsp3dishで使えるんですか?



MillkeyStars

リンク

2018/11/29(Thu) 13:08:54|NO.85900

使えない命令がスクリプトに含まれている場合、実行時に「#Error 21 サポートされない機能を選択しました」とダイアログで表示されエラーとなります。

使える命令・使えない命令一覧表
http://www.onionsoft.net/hsp/v35/doclib/support_cmds.txt



ONION software Copyright 1997-2021(c) All rights reserved.