【経験値制Lv.アップ】テストゲーム公開【質問受付】
投稿者: cdv30200 投稿日:2015/02/10 19:52
≪素材利用について
|
明日のゴミの日に出す絵≫
公開しました。
2DRPG 経験値制レベルアップのテスト
3人パーティーのレベルアップができます。元はこちら
完璧ではなく「自分はこうやって作った」としか言えませんが、開始スクリプトも置いておくので、コピペしてキャラIDなどを自分用に変えて使って下さい。
戦闘勝利後に必ず
を入れるのをお忘れなく。
効果音「TAM_decide2」を使用しています。
キャラによってレベルアップに必要な経験値が違います。
こちらと同じなので参考にして下さい。
所持金表示についてはこちらを参考にしました。
不要なところは削除して下さい。
ちゃんと答えられるか分かりませんが、質問はこちらで受け付けます。
ツイート
2DRPG 経験値制レベルアップのテスト
3人パーティーのレベルアップができます。元はこちら
完璧ではなく「自分はこうやって作った」としか言えませんが、開始スクリプトも置いておくので、コピペしてキャラIDなどを自分用に変えて使って下さい。
戦闘勝利後に必ず
levelUpCheck()
効果音「TAM_decide2」を使用しています。
キャラによってレベルアップに必要な経験値が違います。
こちらと同じなので参考にして下さい。
所持金表示についてはこちらを参考にしました。
不要なところは削除して下さい。
ちゃんと答えられるか分かりませんが、質問はこちらで受け付けます。
#-------------------------------- #カスタムメニュー 重要アイテム setMenuItemVisible(getMenuSave(), false) setMenuItemVisible(getMenuLoad(), false) setCustomParamMenuEnable(true) setCustomParamMenuName("重要アイテム") def onShowCustomParameter() drawCustomParam() #メンバーの経験値 setCustomParamName(0, "ラトゥール") setCustomParamValue(0, "LV. "+getLevel()) setCustomParamName(1, " 経験値計") setCustomParamValue(1, getVariable("totalexp")) if getFlag("レイナ加入") setCustomParamName(2, "レイナ") setCustomParamValue(2, "LV. "+getLevelPartyMember(16372)) else end if getFlag("レイナ加入") setCustomParamName(3, " 経験値計") setCustomParamValue(3, getVariable("totalexp3")) else end if getFlag("おじさん加入") setCustomParamName(4, "おじさん") setCustomParamValue(4, "LV. "+getLevelPartyMember(16373)) else end if getFlag("おじさん加入") setCustomParamName(5, " 経験値計") setCustomParamValue(5, getVariable("totalexp5")) else end #重要アイテム setCustomParamName(7, "重要アイテム") setCustomParamValue(7, "") if getFlag("チョコレート入手") setCustomParamName(8, " チョコレート") setCustomParamValue(8, getVariable("チョコレートの数")) else end #カスタムメニュー 終わり end #-------------------------------------------------- #ここから経験値制レベルアップと、獲得ゴールドの設定 # 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 #関係ないものは0で片付ける else return 0 end end #獲得ゴールドの計算 def gtg(a) gold = 0 #ラトゥールが戦闘不能になった時 if getPlayerHP() == 0 #さらにレイナが戦闘不能になった時 if getPartyMemberHP(16372) == 0#カッコ内はレイナのキャラID killCounts2 = getKillCountPartyMember(16373)#おじさんのキャラID else killCounts2 = getKillCountPartyMember(16372)#レイナのキャラID 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 #関係ないものは0で片付ける else return 0 end end #経験値の計算 def gte(a) exp = 0 if getPlayerHP() == 0 #ラトゥールが戦闘不能になった時 #さらにレイナが戦闘不能になった時 if getPartyMemberHP(16372) == 0 killCounts = getKillCountPartyMember(16373) else killCounts = getKillCountPartyMember(16372) 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のためのスクリプト fadeOutMusicFadeIn(50, 119846, 50) getE = gte() getG = gtg() #戦闘終了後、生き残ったメンバーだけ経験値を加算、ゴールドは必ず加算 addv("gold", getG) if getPlayerHP() >= 1 addv("exp", getE); addv("totalexp", getE) s = "" else s = "" end if getFlag("レイナ加入") && getPartyMemberHP(16372) >= 1 addv("exp2", getE);addv("totalexp3", getE) s = "" else s = "" end if getFlag("おじさん加入") && getPartyMemberHP(16373) >= 1 addv("exp3", getE);addv("totalexp5", getE) s = "" else s = "" end speak(s + getE + " 経験値を獲得!\n" + getG + " Gを手に入れた!") addMoney(getG);setFlag("テキスト",true) #3分の1の確率で「チョコレート」を入手 r = rand(3) if r == 0 #「チョコレート」入手 speak("敵は何かを持っていた。") speak("チョコレートを手に入れた!") playSound(89930) setVariable("チョコレートの数", getVariable("チョコレートの数")+1) setFlag("チョコレート入手", true) else #「チョコレート」入手しない end while gv("exp") >= gv("next") levelUp() addv("exp", gv("next") * -1); addv("next", getLevel() *10) playSound(89930) speak("ラトゥールがレベルアップ!\nLV." + getLevel() + "になった!") if getLevel(16271)==3 giveEquipment(11004) speak("ラトゥールは回復魔法を覚えた!") else end end if getFlag("レイナ加入") while gv("exp2") >= gv("next2") levelUpPartyMember(16372) addv("exp2", gv("next2") * -1); addv("next2", getLevelPartyMember(16372) *12) playSound(89930) speak("レイナがレベルアップ!\nLV." + getLevelPartyMember(16372) + "になった!") end else end if getFlag("おじさん加入") while gv("exp3") >= gv("next3") levelUpPartyMember(16373) addv("exp3", gv("next3") * -1); addv("next3", getLevelPartyMember(16373) *15) playSound(89930) speak("おじさんがレベルアップ!\nLV." + getLevelPartyMember(16373) + "になった!") if getLevelPartyMember(16373)==3 giveEquipmentPartyMember(16373, 14435) speak("おじさんは氷魔法を覚えた!") else end end else 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()) if getFlag("レイナ加入") addPartyMemberHP(16372, getPartyMemberMaxHP(16372)) addPartyMemberMP(16372, getPartyMemberMaxMP(16372)) else end if getFlag("おじさん加入") addPartyMemberHP(16373, getPartyMemberMaxHP(16373)) addPartyMemberMP(16373, getPartyMemberMaxMP(16373)) else end fadeIn() end #--------------------------------------------------------------- #商品の買取価格はまとめてここに設定する(販売価格は店ごとに設定) #-----道具----- #薬草 販売価格8G #setSalePrice(ID, 買い取り価格)です。 setSalePrice(17208, 4);setFlag("テキスト作成",false); setFlag("テキスト",true) #-----武器----- #木の杖 非売品 setSalePrice(17733, 200);setFlag("テキスト作成",false); setFlag("テキスト",true) #ラトゥールの剣 非売品 setSalePrice(12527, 100);setFlag("テキスト作成",false); setFlag("テキスト",true) #木の棒 非売品 setSalePrice(17179, 10);setFlag("テキスト作成",false); setFlag("テキスト",true) #-----防具(服・鎧)----- #布の服 非売品 setSalePrice(785, 4);setFlag("テキスト作成",false); setFlag("テキスト",true) #革の鎧 販売価格200G setSalePrice(11327, 100);setFlag("テキスト作成",false); setFlag("テキスト",true) #砂漠のマント 非売品 setSalePrice(17175, 60);setFlag("テキスト作成",false); setFlag("テキスト",true) #かわいいマント 非売品 setSalePrice(17889, 600);setFlag("テキスト作成",false); setFlag("テキスト",true) #-----防具(盾・足)----- #革の盾 販売価格80G setSalePrice(12611, 40);setFlag("テキスト作成",false); setFlag("テキスト",true) #革の靴 販売価格60G setSalePrice(17174, 30);setFlag("テキスト作成",false); setFlag("テキスト",true)
コメントする
コメントするには、ログインする必要があります。
コメント一覧
コメントはありません。