開始スクリプト2 メモ(透過前景・経験値制レベルアップ・プレイヤー変更)
投稿者: 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 #-----------------------------------------------------------------
コメントする
コメントするには、ログインする必要があります。
コメント一覧
コメントはありません。