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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
1223
桃の木総プレイ時間の表示11解決


桃の木

リンク

2008/12/23(Tue) 16:09:14|NO.21806

こんにちは。
桃の木というものです。

HSPでRPGを作っているのですが、セーブ画面に表示するプレイ時間の
取得方法が分かりません。
どのようにすればゲームのプレイ時間を取得できるでしょうか?

まだまだ初心者なもので……。
宜しくお願い致します。



この記事に返信する


check

リンク

2008/12/23(Tue) 16:52:12|NO.21809

次の命令を使ってできる。
どうやってやるかは、まずは考えろ。
本当にわからなくなったら教えるから。

gettime,bload,bsave

わからない命令はF1ヘルプで調べてくれ。



Gugulecus

リンク

2008/12/24(Wed) 02:12:38|NO.21829

checkさんが使ったらいい命令のヒントを書いてるので、おれは考え方のヒントを。

総プレイ時間=前回までのプレイ時間+今回のプレイ時間
前回までのプレイ時間をどうやって取得すればいいか。
今回のプレイ時間をどうやって取得すればいいか。

あとはcheckさんの教えてくれた命令の意味を調べればできるはず。
こうだと思ったとおりにやってみて、出来なかったら書いたスクリプトを晒せば
さらなるヒントが貰えるだろう。

がんばれ!!



panda

リンク

2008/12/24(Wed) 03:19:38|NO.21830


; -- ここから *INIT ; セーブファイル dir_save = dir_desktop ;DESKTOP fn_save = "セーブファイル.sav" file_save = ""+dir_save+"\\"+fn_save *MAIN pos 640-120*2 objsize 120,30 button gosub "セーブ",*SAVE pos 640-120*1,0 button gosub "削除",*DEL exist file_save if strsize ! -1{ gosub *LOAD } else { pos 10,40 mes "数秒たった後\n[セーブ]を押して\n一度終了してもう一度起動してみて!" } *MLP redraw 0 syscolor 15:boxf 0,0,640,30:syscolor 8 pos 1,5 mes "プレイ時間 : "+pTime+" 秒" redraw 1 if (t ! gettime(6)){ pTime++ t=gettime(6) } wait 10 goto *MLP *DEL exist file_save:if strsize==-1 :return color 255,255,255 : boxf 0,30 : syscolor 8 delete file_save pos 5,40 mes "削除しました\n\n"+file_save return *SAVE ;セーブファイル新しく作成 color 255,255,255 : boxf 0,30 : syscolor 8 dat = "SAVEFILE\n"+ptime+"\nマルス\nLv003\nHP100\nMP80" ;セーブデータ notesel dat notesave file_save pos 5,40 mes "セーブしました!!\n\n"+dat return *LOAD ; セーブの読み込み exist file_save:if strsize==-1 :return color 255,255,255 : boxf 0,30 : syscolor 8 notesel dat noteload file_save noteget fhead,0;ヘッダー noteget pTime,1;プレイ時間(s) noteget pName,2;プレイヤー名 noteget pLV,3 noteget pHP,4 noteget pMP,5 fpTime = int(pTime) pTime = int(pTime) ; 分(m)を求める while pTime>59 pTimeM++ pTime = pTime-60 wend ; 時間(h)を求める while pTimeM>59 pTimeH++ pTimeM = pTimeM-60 wend pos 5,40 mes "セーブデータを読み込みました!\n" mes "なまえ:\n "+pName mes "状態:\n "+pLV+" "+pHP+" "+pMP mes "プレイ時間:\n "+pTimeH+"時間 "+pTimeM+"分 "+pTime+"秒" pTime = fpTime return

適当ですが…。



check

リンク

2008/12/24(Wed) 18:00:39|NO.21866

あほかー!せっかく人が自分でスクリプトを考えるように勧めているのに、
サンプル出しちゃだめでしょ!



Hiroaki Software

リンク

2008/12/24(Wed) 18:07:53|NO.21869

check様
その通りです!

panda様
まあ本人がギブアップと言った後ならサンプル出してもいいが・・・



レノス

リンク

2008/12/24(Wed) 18:12:33|NO.21870

> Hiroaki Softwareさん
他スレでサンプルよこせと言っているあなたが言うのはどうかと……^^;。



SYAM

リンク

2008/12/24(Wed) 19:42:38|NO.21873

んでも、
このサンプルのやり方だと、HSPのような手続き型言語ではちょっと応用しにくいですね。
使えはしますが、このスクリプトの一ヵ所をサブルーチン化して、スクリプトのあちこちから呼び出し続けていないといけません。
それができない場合…たとえばダイアログ表示中とかは、カウント止まりますしね。

起動時間を調べる方法は、
常に1秒ごとに変数をカウントアップする、か、または
開始時刻と現在時刻の差を計算する、です。
※サンプルは前者ですね。

それを、bloadやbsaveで保存します。
この辺は、ゲームのデータに含めちゃっていいでしょう。



Hiroaki Software

リンク

2008/12/24(Wed) 21:22:42|NO.21879

レノス様
>他スレでサンプルよこせと言っているあなたが言うのはどうかと……^^;。
とのことですが
僕がサンプルを欲しいと言っているわけではありません
あくまで
本人(桃の木様)がギブアップと言った後なら本人(桃の木様)にサンプルを出しても
良いということです



xfgjd

リンク

2008/12/24(Wed) 23:57:58|NO.21887

この掲示板の流れ
>質問 ⇒ 使用命令・関数を教えてくれる ⇒ サンプルが張られる ⇒ 解決

つまり「使用命令・関数の説明」が理解できなくても、(その後自然に)
誰かがサンプルを張ってくれる。

 って事に今気が付いた。



panda

リンク

2008/12/25(Thu) 04:48:37|NO.21891

>>checkさん 
失敬><

1回目なら提供するけど、クレクレ君になったときには相手にしないので問題ないかと…。。。
まぁ、それ以前に私自信のサンプルなんてゴミ同然ですので役に立つかどうかすら怪しいですが^^



桃の木

リンク

2008/12/26(Fri) 12:58:29|NO.21972

皆様どうも有り難うございました!

皆様の回答をもとに作成してみようと思います。
pandaさんどうもサンプルまで有り難うございました。

皆様の言うように今度は自分で頑張ってみます。



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