池ちゃんの汎用関数2

投稿者:       256 mini 池ちゃん(翡翠ヶ池) 投稿日:2012/10/18 18:01

一日一回関数です(?)、ログインボーナス等にどうぞ
def LoginCheckToday()
    f = false
    t = getServerCurrentDate()
    d  = toString(t[2]) #日
    if !getVariable("ログインチェック")
    setVariable("ログインチェック", 0)
    end
    rog = getVariable("ログインチェック")
  if rog != d
  f = true
  setVariable("ログインチェック", d)
  end
 return f
end

一日に一回この処理を行ったときはtrue
一日に二回以上この処理を行ったときはfalseになります

使用例
 if LoginCheckToday()
 speak("ログインボーナスー")
 #あげる物の内容
 else
 speak("一日一回だけです")
 end

コメントする

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

コメント一覧

Cdv30200 aoi icon mini aoihikawa(投稿日:2012/10/18 22:03, 履歴)
少し惜しいですね

この関数では日付しか判定に含んでいないため
1ヶ月後の同日に再度利用した場合
別の日であるにもかかわらずfalseとなってしまいます。

#0埋め
def addZero(n, b)
  l = 0; c = n; r = ""; b = b - 1
  while c > 9
      c = floor(c / 10); l = l + 1
  end
  while l < b
      r = r + "0"; l = l + 1
  end
  r = r + n
  return r
end
#1日1回限定判定
def LoginCheckToday() 
  r = false
  
  #現在の年月日を取得する
  t = getServerCurrentDate()
  
  #年月日を文字列に変更
  ymd = ""
  ymd = ymd + addZero(t[0],4) #年
  ymd = ymd + addZero(t[0],2) #月
  ymd = ymd + addZero(t[0],2) #日
  
  #初期値の登録
  #-- 通常変数を使用する場合は --
  #-- 絶対に誰も使用しないような変数名を使う --
  if !getVariable("IkeChan_LoginChk")
    setVariable("IkeChan_LoginChk", "00000000")
  end
  
  #前回の年月日と異なる場合
  if getVariable("IkeChan_LoginChk") != ymd
    r = true
    setVariable("IkeChan_LoginChk", ymd)
  end
  
  return r
end

}}}
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/10/18 22:05, 履歴)
さくっと作ったため
微妙に間違えてたとか。

#0埋め
def addZero(n, b)
  l = 0; c = n; r = ""; b = b - 1
  while c > 9
      c = floor(c / 10); l = l + 1
  end
  while l < b
      r = r + "0"; l = l + 1
  end
  r = r + n
  return r
end
#1日1回限定判定
def LoginCheckToday() 
  r = false
  
  #現在の年月日を取得する
  t = getServerCurrentDate()
  
  #年月日を文字列に変更
  ymd = ""
  ymd = ymd + addZero(t[0],4) #年
  ymd = ymd + addZero(t[1],2) #月
  ymd = ymd + addZero(t[2],2) #日
  
  #初期値の登録
  #-- 通常変数を使用する場合は --
  #-- 絶対に誰も使用しないような変数名を使う --
  if !getVariable("IkeChan_LoginChk")
    setVariable("IkeChan_LoginChk", "00000000")
  end
  
  #前回の年月日と異なる場合
  if getVariable("IkeChan_LoginChk") != ymd
    r = true
    setVariable("IkeChan_LoginChk", ymd)
  end
  
  return r
end
       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2012/10/19 17:14, 履歴)
なるほどです^^;