Project1
标题:
如何设置部分人物不可升级
[打印本页]
作者:
rpg549007821
时间:
2010-11-8 05:56
标题:
如何设置部分人物不可升级
本帖最后由 rpg549007821 于 2010-11-12 22:37 编辑
剧情需要
作者:
Enfa
时间:
2010-11-8 07:52
提示:
作者被禁止或删除 内容自动屏蔽
作者:
夕阳武士
时间:
2010-11-8 13:08
所有怪物0经验。
作者:
企鹅达达
时间:
2010-11-8 13:54
本帖最后由 企鹅达达 于 2010-11-8 13:56 编辑
设置角色最大等级的脚本。没用过,你先试一下 =.= 出错了就找高手解决哈
#===============================================================================
# Set Actor's Max Level Snippet
# By Jet10985 (Jet)
#===============================================================================
# This snippet will allow you to set each actor to have an individual maximum
# level that they can reach in-game.
# This script has: 1 customization options.
#===============================================================================
# Overwritten Methods:
# None
#-------------------------------------------------------------------------------
# Aliased methods:
# Game_Actor: make_exp_list
#===============================================================================
=begin
How to Use:
Below these instructions is the area to choose actor maximum levels. The format
is stated next to the example. If you want more actors on these, add a comma
then follow the format of
actor id => max level
=end
module ActorMaxLevel
MAX_LEVELS = {
1 => 99, # actor id => max level
2 => 20, # actor id => max level
3 => 30,
4 => 2# actor id => max level
}
MAX_LEVELS.default = 99 # The max level for any undefined actor.
end
#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================
class Game_Actor
include ActorMaxLevel
alias jet8888_make_exp_list make_exp_list
def make_exp_list
jet8888_make_exp_list
if @exp_list[MAX_LEVELS[@actor_id] + 1] != 0
@exp_list[MAX_LEVELS[@actor_id] + 1] = 0 if MAX_LEVELS[@actor_id] != nil
end
end
end
unless $engine_scripts.nil?
JetEngine.active("Set Actor Max Level", 1.1)
end
复制代码
作者:
无心孤云
时间:
2010-11-8 17:43
用的着那么麻烦么?
在数据库设置人物最大等级为X
然后该人物的出场等级也是X。。。
如此。OK
你想要谁不能升级就谁不能升级了
作者:
cnchen0708
时间:
2010-11-8 18:37
我只知道怎么限制全队最高等级...
脚本Game_Actor,把第520行的
def change_exp(exp, show)
last_level = @level
last_skills = skills
@exp = [[exp, 9999999].min, 0].max
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
level_up
end
while @exp < @exp_list[@level]
level_down
end
@hp = [@hp, maxhp].min
@mp = [@mp, maxmp].min
if show and @level > last_level
display_level_up(skills - last_skills)
end
end
复制代码
改成
def change_exp(exp, show)
last_level = @level
last_skills = skills
@exp = [[exp, 9999999].min, 0].max
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
if @level < 50
level_up
else
break
end
end
while @exp < @exp_list[@level]
level_down
end
@hp = [@hp, maxhp].min
@mp = [@mp, maxmp].min
if show and @level > last_level
display_level_up(skills - last_skills)
end
end
复制代码
if @level < 50就是最高50级,其他自己改就可以了
作者:
冰舞蝶恋
时间:
2010-11-8 18:53
不可升级的话,直接并行公用事件,XXX角色等级减99,就好了,(并行的事件是会自动循环的)
作者:
笨鸟の先飞
时间:
2010-11-8 20:56
把他的升级EXP调成N多~~N多----
作者:
38571240
时间:
2010-11-8 21:00
本帖最后由 38571240 于 2010-11-8 21:02 编辑
LZ可以用6楼的做法,稍作修改,将
if @level < 50
level_up
else
break
end
复制代码
这个地方改为:
if @level >= 50&&@class_id == 10#10号职业的等级上限为50
break
else
level_up
end
复制代码
如此,为某角色设置10号职业时,此角色的最高等级为50,依次类推
如果还想设置[有最高等级上限的多个其他职业],就改为
[if (@level >= 等级上限A&&@class_id == 等级限制A的职业ID)||(@level >= 等级上限B&&@class_id == 等级上限B的职业ID)....]
只要在判断条件后不断加上||(@level >= 等级上限N&&@class_id == 等级上限N的职业ID)即可
作者:
夕阳武士
时间:
2010-11-8 22:14
我觉得还是我的方法最好~都没有怪物可以加你的经验上哪里升级呢?
作者:
phunmung5173
时间:
2010-11-8 23:05
把你不让他升级的任务放初始等级99,他怎么升?
作者:
thomaskkkk
时间:
2010-11-8 23:25
lz想要的效果,應該是從lv1到某個lv因劇情需要停下來,
完成劇情後,那角色還是會升等的那種
可以設定多個一樣的角色之後用變數…當a的level是n時,b的level也是n
代入之後,那個b是固定等級,劇情完成再回到a…是這樣嗎
作者:
38571240
时间:
2010-11-9 13:00
本帖最后由 38571240 于 2010-11-9 13:09 编辑
如果LZ定义部分人物从加入队伍或开始游戏起就不可升级,请结合6L+9L的做法,将等级上限的部分判断去掉,如:
if class_id == 10
break
else
level_up
end
复制代码
这样无论人物设置多少初始等级,只要是给他10号职业(可以自行设定if class_id == 职业ID)都不会升级了,当然,你可以复制职业,这样想解除升级限制时,就悄悄地转成复制的职业,这样显示出的职业属性技能都不会变,而可以继续升级。
确切地说10号职业只是得不到经验了,如果有此人出入队伍的情况,直接用事件分配和主角对应的等级就可以了。
本来不用加以说明,不过如果LZ用到这种情况,还是说明一下的好,问题解决的话请给6L的同学分确认。
作者:
烁灵
时间:
2010-11-9 13:16
本帖最后由 烁灵 于 2010-11-9 13:16 编辑
可不可以在def change_exp(exp, show)里直接if name =="拉尔夫"就return?
作者:
反斗奇彬
时间:
2010-11-10 11:07
回复
rpg549007821
的帖子
貌似楼主早上6点发帖,真是厉害啊,言归正传,楼主想要的是让部分人物能力升级不涨是吧,这样的话只要把那部分人物的能力在数据库里面调整一下了。
作者:
企鹅达达
时间:
2010-11-12 09:36
又找到一个脚本,让附加某状态的主角得不到经验值
#===============================================================================
# No Actor EXP Snippet
# By Jet10985 (Jet)
# Help by: OriginalWij
#===============================================================================
# This snippet allows you to define actors throughout the game that will not
# gain exp AT ALL. Note: They can still level up trough the event command.
# This script has: 1 customization option.
#===============================================================================
# Overwritten Methods:
# None
#-------------------------------------------------------------------------------
# Aliased methods:
# Game_Actor: change_exp
# Game_System: initialize
#===============================================================================
=begin
Adding Actors:
To add Actors to the list of actors that don't gain exp use:
no_exp_gain(actor)
where actor is the id of the actor you don't want gaining exp.
Removing Actors:
To allow an actor to gain exp again, use:
yes_exp_gain(actor)
where actor is the id of the actor you want to gain exp again.
=end
module NoActorEXP
# These are actors that will not gain exp by default. They
# can be removed from here by using the yes_exp_gain(actor)
NO_ACTOR_EXP = [6, 7, 8]
NO_EXP_STATE = 17 # A state that will prevent exp gain until cured.
end
#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================
class Game_Actor
include NoActorEXP
alias jet1999_change_exp change_exp unless $@
def change_exp(exp, show)
if NO_ACTOR_EXP != nil
jet1999_change_exp(exp, show) unless $game_system.no_exp_actors.include?(@actor_id) || @states.include?(NO_EXP_STATE)
end
end
end
class Game_System
include NoActorEXP
attr_accessor :no_exp_actors
alias jet1092_initialize initialize unless $@
def initialize
jet1092_initialize
@no_exp_actors = NO_ACTOR_EXP.clone
end
end
class Game_Interpreter
include NoActorEXP
def no_exp_gain(actor)
$game_system.no_exp_actors.push(actor) unless $game_system.no_exp_actors.include?(actor)
end
def yes_exp_gain(actor)
$game_system.no_exp_actors.delete(actor) if $game_system.no_exp_actors.include?(actor)
end
end
unless $engine_scripts.nil?
JetEngine.active("No Actor EXP", 1.1)
end
复制代码
作者:
dukesward
时间:
2010-11-12 10:31
lz你还是把情况说清楚一点吧,你看大家都靠猜测在找解决的办法,到底是起始就不能升级还是到某个特定等级后无法继续升级,差别可是很大的
作者:
椎名真冬
时间:
2010-11-12 11:31
夕阳武士 发表于 2010-11-8 22:14
我觉得还是我的方法最好~都没有怪物可以加你的经验上哪里升级呢?
- -人家只要部分人物不升级- -你这样不是全队伍都不能升级了么- -
作者:
rpg549007821
时间:
2010-11-12 22:11
16楼的方法好,我立刻结贴。
作者:
rpg549007821
时间:
2010-11-12 22:11
16楼的方法好,我立刻结贴。
作者:
asdjkl0
时间:
2010-11-14 13:55
调最高等级
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1