ログインボーナスについて(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2012/10/28 10:50:28(最新:2012/10/28 14:01:28)
池ちゃんsのブログを見たんですけど、いまいち分かんなかったので、
自分なりに作りました。
#開始スクリプト
y = getServerCurrentDate()
yy = toString(y[0])
ym = toString(y[1])
yd = toString(y[2])

code{{{
#イベント
t = getServerCurrentDate()
ty = toString(t[0])
tm = toString(t[1])
td = toString(t[2])

if ty != yy || tm != ym || td != yd
speak("ログインチェック!")
y = getServerCurrentDate()
yy = toString(y[0])
ym = toString(y[1])
yd = toString(y[2])
else
speak("もうチェック済み")
end
}}}
これだと、もうチェック済みと出るはずなんですけど、
yyという値が無いとイベントの6行目で出てしまいます。
なぜなんでしょう?開始スクリプトでしっかりと定義してるんですけど..
あと、
ty toString(t[0])+1

こんな風にかけるんでしょうか?
教えてください

コメントする

コメントするには、ログインする必要があります。

コメント一覧

       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2012/10/28 11:09, 履歴)
開始スクリプトに問題がありますね^^;

通常変数を使うとエラーが無くなるはずです。
資料↓
http://page.rmake.jp/wikis/205
y = getServerCurrentDate()
setVariable("e", toString(y[0]))
setVariable("e", toString(y[1]))
setVariable("e", toString(y[2]))

後、イベントですが
これもちょっと間違いがあります(たぶん)
t = getServerCurrentDate() 
ty = toString(t[0]) 
tm = toString(t[1]) 
td = toString(t[2]) 

if ty != yy && tm != ym && td != yd #||は「または」&&は「かつ」
speak("ログインチェック!") 
y = getServerCurrentDate() 
yy = toString(y[0]) 
ym = toString(y[1]) 
yd = toString(y[2]) 
else 
speak("もうチェック済み") 
end 

またまた資料(条件式についてのことは真ん中あたりで書いてあるはず)
http://rmake.jp/document/script_manual
User icon mini 退会したユーザー(投稿日:2012/10/28 11:41, 履歴)
&&だと、年もちがい、月もちがい、日もちがうということになってしまいませんか?
たとえば2012/10/28はいいけど、2012/10/19はだめみたいな
2013/11/30じゃなきゃいけないみたいになる気が...
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/10/28 11:56, 履歴)
年または月または日が違えば
別の日なので、
年 || 月 || 日
で合っています


なお、最後の質問に関しましては
実際に試してみると気がつくと思いますが
a = 10

#aを文字列に変換した後「1」を足す(文字列結合)
str1 = toString(a) + 1
speak(str1) #「101」

#aに1を足した後文字列に変換する(数値加算)
str2 = toString(a + 1)
speak(str2) #「11」

といった動作の流れになります
User icon mini 退会したユーザー(投稿日:2012/10/28 11:57, 履歴)
池ちゃんさんのおかげで出来ました
#開始スクリプト
y = getServerCurrentDate()
setVariable("ey", toString(y[0]))
setVariable ("em", toString(y[1]))
setVariable ("ed", toString(y[2]))
setVariable("ed", getVariable("ey") + 1)

#イベント
t = getServerCurrentDate()
ty = toString(t[0])
tm = toString(t[1])
td = toString(t[2])
yy = getVariable("ey")
ym = getVariable("em")
yd = getVariable("ed")

if ty != yy || tm != ym || td != yd
speak("ログインチェック!")
y = getServerCurrentDate()
setVariable("ey",getVariable("ey") == toString(y[0]))
setVariable("em", getVariable("em") == toString(y[1]))
setVariable("ed", getVariable("ed") == toString(y[2]))
else
speak("もうチェック済み")
end
User icon mini 退会したユーザー(投稿日:2012/10/28 11:59, 履歴)
なるほど、直接1を足すと文字列と判断されるんですね。
そこで、()を使えば普通に1が足されると、覚えておきます!
User icon mini 退会したユーザー(投稿日:2012/10/28 12:02, 履歴)
あっ、すいません。
ログインチェックの後もログインチェックで出ちゃいます。
なんででしょう?
User icon mini 退会したユーザー(投稿日:2012/10/28 14:01, 履歴)
おお、出来たかもしれません
なんか色々自己解決してるような
#イベント
t = getServerCurrentDate()
ty = toString(t[0])
tm = toString(t[1])
td = toString(t[2])
yy = getVariable("ey")
ym = getVariable("em")
yd = getVariable("ed")

if ty != yy || tm != ym || td != yd
speak("ログインチェック!")
y = getServerCurrentDate()
setVariable("ey", toString(y[0]))
setVariable("em", toString(y[1]))
setVariable("ed", toString(y[2]))
else
speak("もうチェック済み")
end

さて、ゲームにしたときちゃんと作動するかどうか
User icon mini 退会したユーザー(投稿日:2012/10/28 10:51, 履歴)
#イベント 
t = getServerCurrentDate() 
ty = toString(t[0]) 
tm = toString(t[1]) 
td = toString(t[2]) 

if ty != yy || tm != ym || td != yd 
speak("ログインチェック!") 
y = getServerCurrentDate() 
yy = toString(y[0]) 
ym = toString(y[1]) 
yd = toString(y[2]) 
else 
speak("もうチェック済み") 
end