【メモ】2DACTRPGの経験値制レベルアップとお金獲得、特定のレベルで魔法獲得

投稿者:Icon mini cdv30200 投稿日:2015/02/01 23:40

#ここから経験値制レベルアップと、獲得ゴールドの設定
# sv=setVariable , gv=getVariable

def sv(a,b)
  setVariable(a, b)
end

def gv(a)
  return getVariable(a)
end

def addv(a,b)
  sv(a, gv(a) + b)
end

def pow(a, b)
  v = 1;  i = 0; g = 0
  while(i < b)
    v = v * a
    i = i + 1
  end
  while(g < b)
    g = g + 1
  end
  return v
end
#主人公の初期値
sv("exp",0);  sv("totalexp",0);  sv("totalexp2",0);  sv("next", 10)
sv("gold", 0);   sv("totalgold", 0)

#個々の敵キャラのゴールドをidから求めます。
def go(id)
case id
    #----ゴールド----
    #スライム
    when 27685
      return 4
    #グリーンスライム
    when 27684
      return 6
    #イエロースライム
    when 27683
      return 14
    #関係ないものは0で片付ける
    else
      return 0
  end
end

#獲得ゴールドの計算
def gtg(a)
  gold = 0
  killCounts2 = getKillCount()
    g = 0
    while g < getArrayLength(killCounts2)
    #倒した敵の種類と数から獲得ゴールドを計算
    gold = gold + go(killCounts2[g][0]) * killCounts2[g][1]
    g = g + 1
    end
  G = gold
  gold = gold - gv("totalgold")
  sv("totalgold", G)
  return gold
end

#個々の敵キャラの経験値をidから求めます。
def gee(id)
 case id
    #ザコ敵
    #スライム
    when 27685
      return 3
    #グリーンスライム
    when 27684
      return 5
    #イエロースライム
    when 27683
      return 8
    #関係ないものは0で片付ける
    else
      return 0
  end
end

#経験値の計算
def gte(a)
  exp = 0
  killCounts = getKillCount()

  i = 0
  while i < getArrayLength(killCounts)

    #倒した敵の種類と数から経験値を計算
    exp = exp + gee(killCounts[i][0]) * killCounts[i][1]

    i = i + 1
  end
  A = exp
  exp = exp - gv("totalexp2")
  sv("totalexp2", A)
  return exp
end

def levelUpCheck()
getE = gte()
getG = gtg()

addv("gold", getG)  
addv("exp", getE);  addv("totalexp", getE)

  speak(getE + " 経験値を獲得!\n" + getG + " Gを手に入れた!")
  addMoney(getG);setFlag("テキスト",true)

  while  gv("exp") >= gv("next")
    levelUp()
    addv("exp", gv("next") * -1);  addv("next", getLevel() *10)
if getLevel(16271)==7
speak("レベルアップ!\nLV." + getLevel() + "になった!")
giveEquipment(11321) 
 speak("かまいたちを覚えた!")
elsif getLevel(16271)==5
speak("レベルアップ!\nLV." + getLevel() + "になった!")
giveEquipment(11336) 
speak("小爆発を覚えた!")
elsif getLevel(16271)==3
speak("レベルアップ!\nLV." + getLevel() + "になった!")
giveEquipment(11004) 
 speak("回復魔法を覚えた!")
else
speak("レベルアップ!\nLV." + getLevel() + "になった!")
end

end
end

#経験値について ここまで

# お金の単位としてGと表記するようにする-----------------------
# 例:0Gというように表示される
setDenomination("G")

# 初期の所持金を0Gに設定する
addMoney(0)

#所持金表示について ここから
def tukuru()
#テキスト表示場所作成
setTextFontColor(255,255,255)
setVariable("t",createText(420,40,100,40))
setTextFontColor(255,255,255)
#テキストイベントフラグ
setFlag("テキスト作成",false); setFlag("テキスト",true)
end #tukuru()終

def kaku()
setText(getVariable("t"),getMoney()+getDenomination())
setFlag("テキスト",false)
end #kaku()終

#-------------------------------------------------------------------
#宿屋の処理
def inn()
fadeOut(0, 0, 0)
addPlayerHP(getPlayerMaxHP())
addPlayerMP(getPlayerMaxMP())
fadeIn()
end
#---------------------------------------------------------------

コメントする

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

コメント一覧

コメントはありません。