【経験値制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)
コメントする
コメントするには、ログインする必要があります。
コメント一覧
コメントはありません。