開始スクリプト2 メモ(透過前景・経験値制レベルアップ・プレイヤー変更)

投稿者:Icon mini cdv30200 投稿日:2014/10/15 01:54

開始スクリプト その2
#ここから経験値制レベルアップと、獲得ゴールドの設定
# 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("exp2",0); sv("totalexp3",0);  sv("totalexp4",0); sv("next2", 20) ;
#アメジストの初期値
sv("exp3",0); sv("totalexp5",0);  sv("totalexp6",0); sv("next3", 50) ;
#獲得ゴールドの初期値
sv("gold", 0); sv("totalgold", 0)

#個々の敵キャラのゴールドをidから求めます。
def go(id)
case id
    #----ゴールド ザコ敵 フェイワ地方----
    #スライム
    when 27685
      return 4
    #グリーンスライム
    when 27684
      return 6
    #イエロースライム
    when 27683
      return 14
    #コボルト
    when 27854
      return 10
    #コボルト中堅
    when 27852
      return 12
    #ブラッドスライム
    when 30167
      return 60
    #----ゴールド ザコ敵 レヴェラ地方 西----
    #マイマイ
    when 19794
      return 22
    #サクラマイマイ
    when 19795
      return 30
    #盗賊(新入り)
    when 16472
      return 20
    #盗賊(下っ端)
    when 16118
      return 18
    #盗賊(中堅)
    when 15996
      return 24
    #----ゴールド ザコ敵 レヴェラ地方 東----
    #大蛇
    when 28106
      return 32
    #おサルさん
    when 29081
      return 30
    #風の精・フー
    when 28966
      return 200
    #----ゴールド ザコ敵 乾燥地帯 ----
    #グレートおサル
    when 29165
      return 42
    #ジュモクイカ
    when 29080
      return 38
    #ピンクスライム
    when 27682
      return 15
    #スライムゴールド
    when 27674
      return 300
    #----ゴールド ザコ敵 ゾイブルグ地方 ----
    #骸骨
    when 29517
      return 10
    #サクライカ
    when 29691
      return 40
    #ブラッドマイマイ 大規模RPG用
    when 29785
      return 33
    #ドラゴンフライ
    when 29806
      return 35
    #----ゴールド フェイワロー城 ----
    #グレースライム
    when 27679
      return 40
    #----ゴールド ゾイブルグ城 ----
    #マウルス魔導士
    when 29944
      return 30
    #----ゴールド 氷の大陸 ----
    #アイスマイマイ
    when 19796
      return 28
    #スノウマン
    when 29884
      return 32
    #----ゴールド 氷の洞窟 ----
    #アイスマイマイ改
    when 19803
      return 48
    #ゴブリン
    when 30151
      return 30
    #ミノタウロス
    when 29796
      return 100
    #----ゴールド 岩山のほこら ----
    #エテキチの幻
    when 29928
      return 40
    #マウルス魔導士の幻
    when 29945
      return 50
    #りかぴーの幻
    when 29953
      return 50
    #----ゴールド 魔王の城 ----
    #スノウドラゴン
    when 30748
      return 40
    #スライムシルバー
    when 27680
      return 300
    #ゴーレム
    when 30749
      return 30
    #風の精・フー(強)
    when 29990
      return 300
    #水の精・スイ(強)
    when 29991
      return 300
    #----ゴールド 海全域 ----
    #人食い魚
    when 29811
      return 28
    #特大イカ
    when 29812
      return 24
    #足なしクラゲ
    when 29814
      return 16
    #----ゴールド ボスモンスター ----
    #コボルト親分
    when 27853
      return 100
    #盗賊のボス
    when 16468
      return 130
    #炎の精・フィーユ(強)
    when 29042
      return 800
    #炎の精・フィーユ(弱)
    when 29082
      return 800
    #エテキチ
    when 29166
      return 300
    #炎の精・フォンヌ
    when 30303
      return 1000
    #----ゴールド 武術大会 ----
    #普通の侍A
    when 29460
      return 0
    #普通の侍B
    when 29461
      return 0
    #強い侍A
    when 29462
      return 0
    #強い侍B
    when 29464
      return 0
    #とても強い侍
    when 29450
      return 0
    #超強い侍
    when 29469
      return 0
    #タゴサク
    when 29451
      return 0
    #関係ないものは0で片付ける
    else
      return 0
  end
end
#獲得ゴールドの計算
def gtg(a)
  gold = 0
  #シャインが戦闘不能になった時
  if getPlayerHP() == 0
      #さらにレインが戦闘不能になった時
      if getPartyMemberHP(27671) == 0
      killCounts2 = getKillCountPartyMember(27672)
      else
      killCounts2 = getKillCountPartyMember(27671)
      end
    g = 0
    while g < getArrayLength(killCounts2)
    #倒した敵の種類と数から獲得ゴールドを計算
    gold = gold + go(killCounts2[g][0]) * killCounts2[g][1]
    g = g + 1
    end
  #シャインが戦闘不能になっていない時
  else
    killCounts2 = getKillCount()
    g = 0
    while g < getArrayLength(killCounts2)
    #倒した敵の種類と数から獲得ゴールドを計算
    gold = gold + go(killCounts2[g][0]) * killCounts2[g][1]
    g = g + 1
    end
  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 6
    #イエロースライム
    when 27683
      return 14
    #コボルト
    when 27854
      return 12
    #コボルト中堅
    when 27852
      return 16
   #ブラッドスライム
    when 30167
      return 50
    #----経験値 ザコ敵 レヴェラ地方 西----
    #マイマイ
    when 19794
      return 20
    #サクラマイマイ
    when 19795
      return 28
    #盗賊(新入り)
    when 16472
      return 22
    #盗賊(下っ端)
    when 16118
      return 16
    #盗賊(中堅)
    when 15996
      return 25
    #----経験値 ザコ敵 レヴェラ地方 東----
    #大蛇
    when 28106
      return 16
    #おサルさん
    when 29081
      return 32
    #風の精・フー
    when 28966
      return 200
    #----経験値 ザコ敵 乾燥地帯----
    #グレートおサル
    when 29165
      return 42
    #ジュモクイカ
    when 29080
      return 48
    #ピンクスライム
    when 27682
      return 32
    #スライムゴールド
    when 27674
      return 28
    #----経験値 ゾイブルグ地方----
    #骸骨
    when 29517
      return 45
    #サクライカ
    when 29691
      return 52
    #ブラッドマイマイ 大規模RPG用
    when 29785
      return 40
    #ドラゴンフライ
    when 29806
      return 70
    #----経験値 フェイワロー城 ----
    #グレースライム
    when 27679
      return 70
    #エオリアン
    when 27748
      return 600
    #----経験値 ゾイブルグ城 ----
    #マウルス魔導士
    when 29944
      return 220
    #----経験値 氷の大陸 ----
    #アイスマイマイ
    when 19796
      return 28
    #スノウマン
    when 29884
      return 46
    #----経験値 氷の洞窟 ----
    #アイスマイマイ改
    when 19803
      return 40
    #ゴブリン
    when 30151
      return 30
    #ミノタウロス
    when 29796
      return 200
    #----経験値 岩山のほこら ----
    #エテキチの幻
    when 29928
      return 200
    #マウルス魔導士の幻
    when 29945
      return 300
    #りかぴーの幻
    when 29953
      return 350
    #----経験値 魔王の城 ----
    #スノウドラゴン
    when 30748
      return 100
    #スライムシルバー
    when 27680
      return 60
    #ゴーレム
    when 30749
      return 90
    #風の精・フー(強)
    when 29990
      return 500
    #水の精・スイ(強)
    when 29991
      return 500
    #----経験値 海全域 ----
    #人食い魚
    when 29811
      return 34
    #特大イカ
    when 29812
      return 42
    #足なしクラゲ
    when 29814
      return 30
    #----経験値 ボスモンスター ----
    #コボルト親分
    when 27853
      return 40
    #盗賊のボス
    when 16468
      return 200
    #炎の精・フィーユ(強)
    when 29042
      return 600
    #炎の精・フィーユ(弱)
    when 29082
      return 600
    #エテキチ
    when 29166
      return 400
    #炎の精・フォンヌ
    when 30303
      return 800
    #----経験値 武術大会 ----
    #普通の侍A
    when 29460
      return 60
    #普通の侍B
    when 29461
      return 80
    #強い侍A
    when 29462
      return 90
    #強い侍B
    when 29464
      return 110
    #とても強い侍
    when 29450
      return 130
    #超強い侍
    when 29469
      return 150
    #タゴサク
    when 29451
      return 180
    #関係ないものは0で片付ける
    else
      return 0
  end
end

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

if getPlayerHP() == 0
#シャインが戦闘不能になった時
      #さらにレインが戦闘不能になった時
      if getPartyMemberHP(27671) == 0
      killCounts = getKillCountPartyMember(27672)
      else
      killCounts = getKillCountPartyMember(27671)
      end
  i = 0
    while i < getArrayLength(killCounts)
    #倒した敵の種類と数から経験値を計算
    exp = exp + gee(killCounts[i][0]) *  killCounts[i][1]
    i = i + 1
    end
else 
#シャインが戦闘不能になっていない時
  killCounts = getKillCount()
  i = 0
    while i < getArrayLength(killCounts)
    #倒した敵の種類と数から経験値を計算
    exp = exp + gee(killCounts[i][0]) * killCounts[i][1]
    i = i + 1
    end
end


     if getFlag("レイン加入")
    exp2 = exp
     else
     end
     if getFlag("アメジスト加入")
     exp3 = exp
     else
     end

  A = exp
  exp = exp - gv("totalexp2")
  sv("totalexp2", A)
  return exp
  B = exp2
  exp2 = exp2 - gv("totalexp4")
  sv("totalexp4", B)
  return exp2
  C = exp3
  exp3 = exp3 - gv("totalexp5")
  sv("totalexp6", C)
  return exp3end

end

def levelUpCheck()
#BGMのためのスクリプト
  if getFlag("船に乗る") && !getFlag("魔法施設に入る")
  fadeOutMusicFadeIn(50, 223450, 50)
  elsif getFlag("洞窟に入る")
  fadeOutMusicFadeIn(50, 34876, 50)
  elsif getFlag("塔に入る")
  fadeOutMusicFadeIn(50, 83, 50)
  elsif getFlag("ほこらに入る")
  fadeOutMusicFadeIn(50, 236868, 50)
  elsif getFlag("風の精・フーとの戦闘開始") || getFlag("スライムとの戦闘開始") || getFlag("エオリアンとの戦闘開始")
  fadeOutMusicFadeIn(50, 223451, 50)
  elsif getFlag("魔法施設に入る")
  fadeOutMusicFadeIn(50, 236843, 50)
  elsif getFlag("武術大会")
  #武術大会はBGMを変えない
  else
  #フィールド上にいる
  fadeOutMusicFadeIn(50, 223435, 50)
  end
  getE = gte()
  getG = gtg()
#戦闘終了後、生き残ったメンバーだけ経験値を加算、ゴールドは必ず加算
addv("gold", getG)  
  if getPlayerHP() >= 1
  addv("exp", getE);  addv("totalexp", getE)
  s = ""
  else
  s = ""
  end

  if getFlag("レイン加入") && getPartyMemberHP(27671) >= 1
  addv("exp2", getE);addv("totalexp3", getE)
  s = ""
  else
  s = ""
  end

  if getFlag("アメジスト加入") && getPartyMemberHP(27672) >= 1
  addv("exp3", getE);addv("totalexp5", getE)
  s = ""
  else
  s = ""
  end

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

#氷の洞窟 3分の1の確率で「脱出石」を入手
if getFlag("氷の洞窟")
  r = rand(3)
  if r == 1
  #「脱出石」入手
  speak("敵は何かを持っていた。")
  speak("脱出石を手に入れた!")
  playSound(89930)
  setVariable("脱出石の数", getVariable("脱出石の数")+1)
  setFlag("脱出石入手", true)
  else
  #「脱出石」入手しない
  end
else
end

  while  gv("exp") >= gv("next")
    levelUp()
    addv("exp", gv("next") * -1);  addv("next",  getLevel() *10) 
      playSound(89930)
      speak("シャインがレベルアップ!\nLV." + getLevel() + "になった!")
      if getFlag("船に乗る") 
      setVariable("船のレベル", getVariable("船のレベル")+1)
      else
      setVariable("シャインのレベル", getVariable("シャインのレベル")+1)
      end
  end
  if getFlag("レイン加入")
  while  gv("exp2") >= gv("next2")
  levelUpPartyMember(27671)
    addv("exp2", gv("next2") * -1);  addv("next2", getLevelPartyMember(27671) *12)
    playSound(89930)
    speak("レインがレベルアップ!\nLV." + getLevelPartyMember(27671) + "になった!")
  end
  else
   end
  if getFlag("アメジスト加入")
  while  gv("exp3") >= gv("next3")
  levelUpPartyMember(27672)
    addv("exp3", gv("next3") * -1);  addv("next3", getLevelPartyMember(27672) *15)
    playSound(89930)
    speak("アメジストがレベルアップ!\nLV." + getLevelPartyMember(27672) + "になった!")
  end
  else
  end
end
#-----------------------------------------------------------------
#船に乗った時に使うスクリプト
def sea()
a = getVariable("船のレベル")
l = getLevel()
h = getPlayerHP()
m = getPlayerMP()
setVariable("シャインのHP", getVariable("シャインのHP")+h)
setVariable("シャインのMP", getVariable("シャインのMP")+m)

#プレイヤーを主人公から船に変更
setEventCharacter("playerCharacterEvent", 27833)
while a < l
levelUp() 
setVariable("船のレベル", getVariable("船のレベル")+1)
a = a + 1 
end
subPlayerHP(getPlayerMaxHP())
addPlayerHP(h)
subPlayerMP(getPlayerMaxMP())
addPlayerMP(m)
#海上での戦闘後(海の洞窟内を除く)と、海の洞窟内で船に乗った時は、BGMの変更を省略する。
  if getFlag("戦闘開始海の洞窟01") || getFlag("戦闘開始海の洞窟02") || getFlag("戦闘開始海の洞窟03") || getFlag("戦闘開始海の洞窟04") 
  setFlag("船に乗る", true)
#  fadeOutMusicFadeIn(50, 236843, 50)
  elsif getFlag("魔法施設に入る")
  setFlag("船に乗る", true)
  elsif getFlag("船に乗る")
  else
  fadeOutMusicFadeIn(400, 223450, 400)
  #speak("船に乗りました。") 
  setFlag("船に乗る", true)
  end
end
#-----------------------------------------------------------------
#鳥に乗った時に使うスクリプト
def sky()
a = getVariable("鳥のレベル")
l = getLevel()
h = getPlayerHP()
m = getPlayerMP()

setEventCharacter("playerCharacterEvent", 21378)
while a < l
levelUp() 
setVariable("鳥のレベル", getVariable("鳥のレベル")+1)
a = a + 1 
end

subPlayerHP(getPlayerMaxHP())
addPlayerHP(h)
subPlayerMP(getPlayerMaxMP())
addPlayerMP(m)

fadeOutMusicFadeIn(400, 223452, 400)
#命名前はこのセリフを省略
  if getFlag("はじめて鳥に乗る")
  else
  #speak("レインボー弐号に乗りました。") 
  end
setFlag("鳥に乗る", true)
setFlag("船に乗る", true) 
end
#------------------------------------------------------------------
#上陸した時に使うスクリプト
def field()
a = getVariable("シャインのレベル")
l = getLevel()
h = getPlayerHP()
m = getPlayerMP()

  if getFlag("鳥に乗る")
  setFlag("鳥に乗る", false)
  else
  end
setFlag("船に乗る", false)
#プレイヤーを船から主人公に変更
setEventCharacter("playerCharacterEvent", 27670)

while a < l
levelUp() 
setVariable("シャインのレベル", getVariable("シャインのレベル")+1)
a = a + 1 
end

subPlayerHP(getPlayerMaxHP())
addPlayerHP(h)
subPlayerMP(getPlayerMaxMP())
addPlayerMP(m)

#海の洞窟内で上陸した時は、BGMの変更を省略する。
if getFlag("魔法施設に入る")
else
fadeOutMusicFadeIn(400, 223435, 400)
end

end
#-----------------------------------------------------------------
#ローブを着る時に使うスクリプト
def kiru()
a = getVariable("ローブ姿のレベル")
l = getLevel()
h = getPlayerHP()
m = getPlayerMP()
#プレイヤーをローブ姿に変更
setEventCharacter("playerCharacterEvent", 30002)
while a < l
levelUp() 
setVariable("ローブ姿のレベル", getVariable("ローブ姿のレベル")+1)
a = a + 1 
end
subPlayerHP(getPlayerMaxHP())
addPlayerHP(h)
subPlayerMP(getPlayerMaxMP())
addPlayerMP(m)

speak("シャインはローブを着ました。") 
setFlag("ローブを着る", true)

end
#-----------------------------------------------------------------
#ローブを脱いだ時に使うスクリプト
def nugu()
a = getVariable("シャインのレベル")
l = getLevel()
h = getPlayerHP()
m = getPlayerMP()

#プレイヤーをローブ姿からから主人公に変更
setEventCharacter("playerCharacterEvent", 27670)

while a < l
levelUp() 
setVariable("シャインのレベル", getVariable("シャインのレベル")+1)
a = a + 1 
end
subPlayerHP(getPlayerMaxHP())
addPlayerHP(h)
subPlayerMP(getPlayerMaxMP())
addPlayerMP(m)

setFlag("ローブを着る", false)
end

#-----------------------------------------------------------------

コメントする

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

コメント一覧

コメントはありません。