forum rpg maker kingdom
Administrateurs : dante, Ryu
 
 forum rpg maker kingdom  marche central  script 

 Depasser le niveau 99 (et stats + mp/hp break)

Nouveau sujet   Répondre
 
Bas de pagePages : 1  
dante
administrateur
dante
254 messages postés
   Posté le 09-09-2005 à 18:02:17   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

alors voila le scipt lui meme et a copier dans un nouveau scrîpt au dessus de main:(appelez LevelBreak ou ce que vous voulez)
Pour ce faire vous vous rendez dans l'editeur de scrîpt(ou appuyez sur F11), dans la fenetre de gauche tout en bas se trouve le scrîpt Main.
Faites un clique-droit dessus et choisissez nouveau scrîpt.

Il est posible de configurer les limites de chaques stats, hp etc...
au debut du code (ligne 24) vous trouverez la liste des limites. Il vous suffis de les modifiers a votre convenance.


#LV限界突破
#
#最初に断っておきますと、このスクリプトを使うよりも
#自力で改造した方が、色々自由にできるしオススメです。
#なので、参考程度に見てもらえるといいかもしれません。
#(もちろん、これ単体でも動くように作っていますので
#そのまま使って頂いても構いません。)
#
#そのまま使う場合の注意点として、
#今までのスクリプトと違い、元からある処理をいくつか書き換えてます。
#併用とかする場合、なるべく上の方に貼り付ければなんとかなる、かもしれません。
#
#使い方
#まず、データベースのアクター設定でパラメータの設定をします。
#各パラメータは 初期値 + 基本値 * LV で算出されます。
#アクターのLV1の時のパラメータの値が初期値
#LV2の時の値が基本値です。
#仮にHPの初期値が1500、基本値が150としたいならば、
#データベースのアクターのパラメータ設定で
#LV1の時のHPが1500、LV2の時のHPが150となるように設定してください。
#
#パラメータの算出が適当すぎるので、各自修正が必要かと。

# Liste des limites de stat, de hp, de sp et de niveau!!
BASE_FINAL_LEVEL = 9999 #上限レベル(あんまり大きな値を設定するとハングします)
MAXHP_LIMIT = 99999999 #HP限界値
MAXSP_LIMIT = 99999999 #SP限界値
STR_LIMIT = 999999 #STR限界値
DEX_LIMIT = 999999 #DEX限界値
AGI_LIMIT = 999999 #AGI限界値
INT_LIMIT = 999999 #INT限界値

class Game_Actor < Game_Battler
def new_final_level
lv = BASE_FINAL_LEVEL
#以下上限LV個別指定用
#case self.id
#when 1
# lv = 255
#when 2
# lv = 999
#when 8
# lv = 15600
#end
return lv
end
#--------------------------------------------------------------------------
# ● EXP 計算
#--------------------------------------------------------------------------
def make_exp_list
actor = $data_actors[@actor_id]
@exp_list = Array.new(new_final_level + 2)
@exp_list[1] = 0
pow_i = 2.4 + actor.exp_inflation / 100.0
for i in 2..new_final_level + 1
if i > new_final_level
@exp_list[i] = 0
else
n = actor.exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i)
@exp_list[i] = @exp_list[i-1] + Integer(n)
end
end
end
#--------------------------------------------------------------------------
# ● MaxHP の取得
#--------------------------------------------------------------------------
def maxhp
n = [[base_maxhp + @maxhp_plus, 1].max, MAXHP_LIMIT].min
for i in @states
n *= $data_states[i].maxhp_rate / 100.0
end
n = [[Integer(n), 1].max, MAXHP_LIMIT].min
return n
end
#--------------------------------------------------------------------------
# ● 基本 MaxHP の取得
#--------------------------------------------------------------------------
def base_maxhp
n = $data_actors[@actor_id].parameters[0, 1]
n += $data_actors[@actor_id].parameters[0, 2] * @level
return n
end
#--------------------------------------------------------------------------
# ● 基本 MaxSP の取得
#--------------------------------------------------------------------------
def base_maxsp
n = $data_actors[@actor_id].parameters[1, 1]
n += $data_actors[@actor_id].parameters[1, 2] * @level
return n
end
#--------------------------------------------------------------------------
# ● 基本腕力の取得
#--------------------------------------------------------------------------
def base_str
n = $data_actors[@actor_id].parameters[2, 1]
n += $data_actors[@actor_id].parameters[2, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.str_plus : 0
n += armor1 != nil ? armor1.str_plus : 0
n += armor2 != nil ? armor2.str_plus : 0
n += armor3 != nil ? armor3.str_plus : 0
n += armor4 != nil ? armor4.str_plus : 0
return [[n, 1].max, STR_LIMIT].min
end
#--------------------------------------------------------------------------
# ● 基本器用さの取得
#--------------------------------------------------------------------------
def base_dex
n = $data_actors[@actor_id].parameters[3, 1]
n += $data_actors[@actor_id].parameters[3, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.dex_plus : 0
n += armor1 != nil ? armor1.dex_plus : 0
n += armor2 != nil ? armor2.dex_plus : 0
n += armor3 != nil ? armor3.dex_plus : 0
n += armor4 != nil ? armor4.dex_plus : 0
return [[n, 1].max, DEX_LIMIT].min
end
#--------------------------------------------------------------------------
# ● 基本素早さの取得
#--------------------------------------------------------------------------
def base_agi
n = $data_actors[@actor_id].parameters[4, 1]
n += $data_actors[@actor_id].parameters[4, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.agi_plus : 0
n += armor1 != nil ? armor1.agi_plus : 0
n += armor2 != nil ? armor2.agi_plus : 0
n += armor3 != nil ? armor3.agi_plus : 0
n += armor4 != nil ? armor4.agi_plus : 0
return [[n, 1].max, AGI_LIMIT].min
end
#--------------------------------------------------------------------------
# ● 基本魔力の取得
#--------------------------------------------------------------------------
def base_int
n = $data_actors[@actor_id].parameters[5, 1]
n += $data_actors[@actor_id].parameters[5, 2] * @level
weapon = $data_weapons[@weapon_id]
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
n += weapon != nil ? weapon.int_plus : 0
n += armor1 != nil ? armor1.int_plus : 0
n += armor2 != nil ? armor2.int_plus : 0
n += armor3 != nil ? armor3.int_plus : 0
n += armor4 != nil ? armor4.int_plus : 0
return [[n, 1].max, INT_LIMIT].min
end
#--------------------------------------------------------------------------
# ● EXP の変更
# exp : 新しい EXP
#--------------------------------------------------------------------------
def exp=(exp)
# ★EXPの上限チェックを解除
@exp = [exp, 0].max
# レベルアップ
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
@level += 1
# スキル習得
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
end
# レベルダウン
while @exp < @exp_list[@level]
@level -= 1
end
# 現在の HP と SP が最大値を超えていたら修正
@hp = [@hp, self.maxhp].min
@sp = [@sp, self.maxsp].min
end
#--------------------------------------------------------------------------
# ● レベルの変更
# level : 新しいレベル
#--------------------------------------------------------------------------
def level=(level)
# 上下限チェック
# ★LV上限をnew_final_levelでチェックするように変更
level = [[level, new_final_level].min, 1].max
# EXP を変更
self.exp = @exp_list[level]
end
end


class Game_Battler
#--------------------------------------------------------------------------
# ● MaxSP の取得
#--------------------------------------------------------------------------
def maxsp
n = [[base_maxsp + @maxsp_plus, 0].max, MAXSP_LIMIT].min
for i in @states
n *= $data_states[i].maxsp_rate / 100.0
end
n = [[Integer(n), 0].max, MAXSP_LIMIT].min
return n
end
#--------------------------------------------------------------------------
# ● 腕力の取得
#--------------------------------------------------------------------------
def str
n = [[base_str + @str_plus, 1].max, STR_LIMIT].min
for i in @states
n *= $data_states[i].str_rate / 100.0
end
n = [[Integer(n), 1].max, STR_LIMIT].min
return n
end
#--------------------------------------------------------------------------
# ● 器用さの取得
#--------------------------------------------------------------------------
def dex
n = [[base_dex + @dex_plus, 1].max, DEX_LIMIT].min
for i in @states
n *= $data_states[i].dex_rate / 100.0
end
n = [[Integer(n), 1].max, DEX_LIMIT].min
return n
end
#--------------------------------------------------------------------------
# ● 素早さの取得
#--------------------------------------------------------------------------
def agi
n = [[base_agi + @agi_plus, 1].max, AGI_LIMIT].min
for i in @states
n *= $data_states[i].agi_rate / 100.0
end
n = [[Integer(n), 1].max, AGI_LIMIT].min
return n
end
#--------------------------------------------------------------------------
# ● 魔力の取得
#--------------------------------------------------------------------------
def int
n = [[base_int + @int_plus, 1].max, INT_LIMIT].min
for i in @states
n *= $data_states[i].int_rate / 100.0
end
n = [[Integer(n), 1].max, INT_LIMIT].min
return n
end
#--------------------------------------------------------------------------
# ● MaxHP の設定
# maxhp : 新しい MaxHP
#--------------------------------------------------------------------------
def maxhp=(maxhp)
@maxhp_plus += maxhp - self.maxhp
@maxhp_plus = [[@maxhp_plus, -MAXHP_LIMIT].max, MAXHP_LIMIT].min
@hp = [@hp, self.maxhp].min
end
#--------------------------------------------------------------------------
# ● MaxSP の設定
# maxsp : 新しい MaxSP
#--------------------------------------------------------------------------
def maxsp=(maxsp)
@maxsp_plus += maxsp - self.maxsp
@maxsp_plus = [[@maxsp_plus, -MAXSP_LIMIT].max, MAXSP_LIMIT].min
@sp = [@sp, self.maxsp].min
end
#--------------------------------------------------------------------------
# ● 腕力の設定
# str : 新しい腕力
#--------------------------------------------------------------------------
def str=(str)
@str_plus += str - self.str
@str_plus = [[@str_plus, -STR_LIMIT].max, STR_LIMIT].min
end
#--------------------------------------------------------------------------
# ● 器用さの設定
# dex : 新しい器用さ
#--------------------------------------------------------------------------
def dex=(dex)
@dex_plus += dex - self.dex
@dex_plus = [[@dex_plus, -DEX_LIMIT].max, DEX_LIMIT].min
end
#--------------------------------------------------------------------------
# ● 素早さの設定
# agi : 新しい素早さ
#--------------------------------------------------------------------------
def agi=(agi)
@agi_plus += agi - self.agi
@agi_plus = [[@agi_plus, -AGI_LIMIT].max, AGI_LIMIT].min
end
#--------------------------------------------------------------------------
# ● 魔力の設定
# int : 新しい魔力
#--------------------------------------------------------------------------
def int=(int)
@int_plus += int - self.int
@int_plus = [[@int_plus, -INT_LIMIT].max, INT_LIMIT].min
end
end


voila un screen ou en peux remarquer que le niveau de 99 est depasser



Message édité le 10-09-2005 à 12:01:09 par dante
zelda mythologie
espion
zelda mythologie
142 messages postés
   Posté le 10-09-2005 à 10:20:14   Voir le profil de zelda mythologie (Offline)   Répondre à ce message   Envoyer un message privé à zelda mythologie   

y a des dans ton code. si tu pourais modifier lol
dante
administrateur
dante
254 messages postés
   Posté le 10-09-2005 à 12:00:12   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

ok je m'en occupe
==>voila c fait
myk22
espion
myk22
136 messages postés
   Posté le 11-09-2005 à 22:55:11   Voir le profil de myk22 (Offline)   Répondre à ce message   http://createurderpg.forumactif.com   Envoyer un message privé à myk22   

soit c'est un montage soit c'est un test car regarde le temps du jeux
Ryu
administrateur
Ryu
264 messages postés
   Posté le 11-09-2005 à 23:16:00   Voir le profil de Ryu (Offline)   Répondre à ce message   Envoyer un message privé à Ryu   

au fait, c'est normal que quand on met un nombre trop grand, ça fait buger ?

j'ai essayé de mettre 1'000'000 pour le niveau max. mais ça bug à partir de 10'000...
myk22
espion
myk22
136 messages postés
   Posté le 11-09-2005 à 23:17:56   Voir le profil de myk22 (Offline)   Répondre à ce message   http://createurderpg.forumactif.com   Envoyer un message privé à myk22   

ben faut dire qu'un petit programme comme rpg maker Xp peut aps suporter enorme , puis regarde aucun rpg va jusqua la , et puis sa l'etonnerais que leur programme de creation save faire ca , alors diminue
dante
administrateur
dante
254 messages postés
   Posté le 12-09-2005 à 17:34:42   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

je crois que 10.000 et sufisant et meme trop
et myk22 tu a tout a fait raison
Ryu
administrateur
Ryu
264 messages postés
   Posté le 12-09-2005 à 17:38:16   Voir le profil de Ryu (Offline)   Répondre à ce message   Envoyer un message privé à Ryu   

ouais, je pense aussi que c'est suffisant, mais c'est toujours utile de prévenir des bugs...
dante
administrateur
dante
254 messages postés
   Posté le 12-09-2005 à 17:41:25   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

oui t'a raison ca peut toujours servir
zelda mythologie
espion
zelda mythologie
142 messages postés
   Posté le 12-09-2005 à 18:54:45   Voir le profil de zelda mythologie (Offline)   Répondre à ce message   Envoyer un message privé à zelda mythologie   

j'ai vus un script une fois, le max c'estait 9'999 niv
et les PV tout sa c'etait 999'999
dante
administrateur
dante
254 messages postés
   Posté le 12-09-2005 à 18:56:31   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

oui mais la il arrive que jusqu'a 10000
zelda mythologie
espion
zelda mythologie
142 messages postés
   Posté le 12-09-2005 à 19:03:06   Voir le profil de zelda mythologie (Offline)   Répondre à ce message   Envoyer un message privé à zelda mythologie   

ouai c'est mieu lol
myk22
espion
myk22
136 messages postés
   Posté le 12-09-2005 à 19:17:10   Voir le profil de myk22 (Offline)   Répondre à ce message   http://createurderpg.forumactif.com   Envoyer un message privé à myk22   

mais a quoi ca sert d'aller aussi loj a cet etape j'en aurait marre
zelda mythologie
espion
zelda mythologie
142 messages postés
   Posté le 12-09-2005 à 19:31:44   Voir le profil de zelda mythologie (Offline)   Répondre à ce message   Envoyer un message privé à zelda mythologie   

c'est pour le fun ou bien pour les tests, peut etre meme pour un jeu qui dure 3 ans
dante
administrateur
dante
254 messages postés
   Posté le 13-09-2005 à 00:24:41   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

oui pourkoi pas lol
Ryu
administrateur
Ryu
264 messages postés
   Posté le 13-09-2005 à 12:34:28   Voir le profil de Ryu (Offline)   Répondre à ce message   Envoyer un message privé à Ryu   

peut-être pas 3 ans quand même....lol
zelda mythologie
espion
zelda mythologie
142 messages postés
   Posté le 13-09-2005 à 15:01:47   Voir le profil de zelda mythologie (Offline)   Répondre à ce message   Envoyer un message privé à zelda mythologie   

ouai ta raison, façon de parler
Haut de pagePages : 1  
 
 forum rpg maker kingdom  marche central  script  Depasser le niveau 99 (et stats + mp/hp break)Nouveau sujet   Répondre
 
Identification rapide :         
 
Divers
Imprimer ce sujet
Aller à :   
 
créer forum