Project1
标题:
魔力宝贝1.20解密版本里面怪物的强度问题以及脚本设置
[打印本页]
作者:
wsx901123
时间:
2011-10-6 15:02
标题:
魔力宝贝1.20解密版本里面怪物的强度问题以及脚本设置
魔力宝贝1.20的XP版本解密版,
其中的Game_Enemy脚本中,设置太变态了。。我不会自己修改,想询问高手修改方式!
以下是代码
里面的自动获取HP,SP什么的里面的 return ($data_enemies[@enemy_id].maxhp + $a1+$i)* $enelv 这句,+$a1+$i是什么意思?要设置具体数值在哪里?
最后我还想询问一下敌人的等级在什么地方设置?我有个敌人等级随玩家变化而变化的设置脚本,但是不会用。。有需要的人我可以把那个脚本发上来!以上
#==============================================================================
# ■ Game_Enemy
#------------------------------------------------------------------------------
# 处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的
# 内部使用。
#==============================================================================
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ● 初始化对像
# troop_id : 循环 ID
# member_index : 循环成员的索引
#--------------------------------------------------------------------------
def initialize(troop_id, member_index)
super()
@troop_id = troop_id
@member_index = member_index
troop = $data_troops[@troop_id]
@enemy_id = troop.members[@member_index].enemy_id
enemy = $data_enemies[@enemy_id]
if enemy.gold != 0
$enelv = enemy.gold
else
$enelv = 1
end
@battler_name = enemy.battler_name
@battler_hue = enemy.battler_hue
@hp = maxhp
@sp = maxsp
@hidden = troop.members[@member_index].hidden
@immortal = troop.members[@member_index].immortal
end
#--------------------------------------------------------------------------
# ● 获取敌人 ID
#--------------------------------------------------------------------------
def id
return @enemy_id
end
#--------------------------------------------------------------------------
# ● 获取索引
#--------------------------------------------------------------------------
def index
return @member_index
end
#--------------------------------------------------------------------------
# ● 获取名称
#--------------------------------------------------------------------------
def name
return $data_enemies[@enemy_id].name
end
#--------------------------------------------------------------------------
# ● 获取基本 MaxHP
#--------------------------------------------------------------------------
def base_maxhp
case @member_index
when 0
return ($data_enemies[@enemy_id].maxhp + $a1+$i)* $enelv
when 1
return ($data_enemies[@enemy_id].maxhp + $b+$i)* $enelv
when 2
return ($data_enemies[@enemy_id].maxhp + $c+$i)* $enelv
when 3
return ($data_enemies[@enemy_id].maxhp + $d+$i)* $enelv
when 4
return ($data_enemies[@enemy_id].maxhp + $e+$i)* $enelv
when 5
return ($data_enemies[@enemy_id].maxhp + $f+$i)* $enelv
when 6
return ($data_enemies[@enemy_id].maxhp + $g+$i)* $enelv
when 7
return ($data_enemies[@enemy_id].maxhp + $h+$i)* $enelv
end
end
#--------------------------------------------------------------------------
# ● 获取基本 MaxSP
#--------------------------------------------------------------------------
def base_maxsp
case @member_index
when 0
return ($data_enemies[@enemy_id].maxsp + $a1+$i)* $enelv
when 1
return ($data_enemies[@enemy_id].maxsp + $b+$i)* $enelv
when 2
return ($data_enemies[@enemy_id].maxsp + $c+$i)* $enelv
when 3
return ($data_enemies[@enemy_id].maxsp + $d+$i)* $enelv
when 4
return ($data_enemies[@enemy_id].maxsp + $e+$i)* $enelv
when 5
return ($data_enemies[@enemy_id].maxsp + $f+$i)* $enelv
when 6
return ($data_enemies[@enemy_id].maxsp + $g+$i)* $enelv
when 7
return ($data_enemies[@enemy_id].maxsp + $h+$i)* $enelv
end
end
#--------------------------------------------------------------------------
# ● 获取基本力量
#--------------------------------------------------------------------------
def base_str
case @member_index
when 0
return $data_enemies[@enemy_id].str + $a1+$i+ $enelv
when 1
return $data_enemies[@enemy_id].str + $b+$i+ $enelv
when 2
return $data_enemies[@enemy_id].str + $c+$i+ $enelv
when 3
return $data_enemies[@enemy_id].str + $d+$i+ $enelv
when 4
return $data_enemies[@enemy_id].str + $e+$i+ $enelv
when 5
return $data_enemies[@enemy_id].str + $f+$i+ $enelv
when 6
return $data_enemies[@enemy_id].str + $g+$i+ $enelv
when 7
return $data_enemies[@enemy_id].str + $h+$i+ $enelv
end
end
#--------------------------------------------------------------------------
# ● 获取基本灵巧
#--------------------------------------------------------------------------
def base_dex
case @member_index
when 0
return $data_enemies[@enemy_id].dex + $a1+$i+ $enelv
when 1
return $data_enemies[@enemy_id].dex + $b+$i+ $enelv
when 2
return $data_enemies[@enemy_id].dex + $c+$i+ $enelv
when 3
return $data_enemies[@enemy_id].dex + $d+$i+ $enelv
when 4
return $data_enemies[@enemy_id].dex + $e+$i+ $enelv
when 5
return $data_enemies[@enemy_id].dex + $f+$i+ $enelv
when 6
return $data_enemies[@enemy_id].dex + $g+$i+ $enelv
when 7
return $data_enemies[@enemy_id].dex + $h+$i+ $enelv
end
end
#--------------------------------------------------------------------------
# ● 获取基本速度
#--------------------------------------------------------------------------
def base_agi
case @member_index
when 0
return $data_enemies[@enemy_id].agi + $a1+$i+ $enelv
when 1
return $data_enemies[@enemy_id].agi + $b+$i+ $enelv
when 2
return $data_enemies[@enemy_id].agi + $c+$i+ $enelv
when 3
return $data_enemies[@enemy_id].agi + $d+$i+ $enelv
when 4
return $data_enemies[@enemy_id].agi + $e+$i+ $enelv
when 5
return $data_enemies[@enemy_id].agi + $f+$i+ $enelv
when 6
return $data_enemies[@enemy_id].agi + $g+$i+ $enelv
when 7
return $data_enemies[@enemy_id].agi + $h+$i+ $enelv
end
end
#--------------------------------------------------------------------------
# ● 获取基本魔力
#--------------------------------------------------------------------------
def base_int
case @member_index
when 0
return $data_enemies[@enemy_id].int + $a1+$i+ $enelv
when 1
return $data_enemies[@enemy_id].int + $b+$i+ $enelv
when 2
return $data_enemies[@enemy_id].int + $c+$i+ $enelv
when 3
return $data_enemies[@enemy_id].int + $d+$i+ $enelv
when 4
return $data_enemies[@enemy_id].int + $e+$i+ $enelv
when 5
return $data_enemies[@enemy_id].int + $f+$i+ $enelv
when 6
return $data_enemies[@enemy_id].int + $g+$i+ $enelv
when 7
return $data_enemies[@enemy_id].int + $h+$i+ $enelv
end
end
#--------------------------------------------------------------------------
# ● 获取基本攻击力
#--------------------------------------------------------------------------
def base_atk
case @member_index
when 0
return $data_enemies[@enemy_id].atk + $a1+$i+ $enelv
when 1
return $data_enemies[@enemy_id].atk + $b+$i+ $enelv
when 2
return $data_enemies[@enemy_id].atk + $c+$i+ $enelv
when 3
return $data_enemies[@enemy_id].atk + $d+$i+ $enelv
when 4
return $data_enemies[@enemy_id].atk + $e+$i+ $enelv
when 5
return $data_enemies[@enemy_id].atk + $f+$i+ $enelv
when 6
return $data_enemies[@enemy_id].atk + $g+$i+ $enelv
when 7
return $data_enemies[@enemy_id].atk + $h+$i+ $enelv
end
end
#--------------------------------------------------------------------------
# ● 获取基本物理防御
#--------------------------------------------------------------------------
def base_pdef
case @member_index
when 0
return $data_enemies[@enemy_id].atk + $a1+$i+ $enelv
when 1
return $data_enemies[@enemy_id].atk + $b+$i+ $enelv
when 2
return $data_enemies[@enemy_id].atk + $c+$i+ $enelv
when 3
return $data_enemies[@enemy_id].atk + $d+$i+ $enelv
when 4
return $data_enemies[@enemy_id].atk + $e+$i+ $enelv
when 5
return $data_enemies[@enemy_id].atk + $f+$i+ $enelv
when 6
return $data_enemies[@enemy_id].atk + $g+$i+ $enelv
when 7
return $data_enemies[@enemy_id].atk + $h+$i+ $enelv
end
end
#--------------------------------------------------------------------------
# ● 获取基本魔法防御
#--------------------------------------------------------------------------
def base_mdef
case @member_index
when 0
return $data_enemies[@enemy_id].mdef + $a1+$i+ $enelv
when 1
return $data_enemies[@enemy_id].mdef + $b+$i+ $enelv
when 2
return $data_enemies[@enemy_id].mdef + $c+$i+ $enelv
when 3
return $data_enemies[@enemy_id].mdef + $d+$i+ $enelv
when 4
return $data_enemies[@enemy_id].mdef + $e+$i+ $enelv
when 5
return $data_enemies[@enemy_id].mdef + $f+$i+ $enelv
when 6
return $data_enemies[@enemy_id].mdef + $g+$i+ $enelv
when 7
return $data_enemies[@enemy_id].mdef + $h+$i+ $enelv
end
end
#--------------------------------------------------------------------------
# ● 获取基本回避修正
#--------------------------------------------------------------------------
def base_eva
return $data_enemies[@enemy_id].eva
end
#--------------------------------------------------------------------------
# ● 普通攻击 获取攻击方动画 ID
#--------------------------------------------------------------------------
def animation1_id
return $data_enemies[@enemy_id].animation1_id
end
#--------------------------------------------------------------------------
# ● 普通攻击 获取对像方动画 ID
#--------------------------------------------------------------------------
def animation2_id
return $data_enemies[@enemy_id].animation2_id
end
#--------------------------------------------------------------------------
# ● 获取属性修正值
# element_id : 属性 ID
#--------------------------------------------------------------------------
def element_rate(element_id)
# 获取对应属性有效度的数值
table = [0,200,150,100,50,0,-100]
result = table[$data_enemies[@enemy_id].element_ranks[element_id]]
# 状态能防御本属性的情况下效果减半
for i in @states
if $data_states[i].guard_element_set.include?(element_id)
result /= 2
end
end
# 过程结束
return result
end
#--------------------------------------------------------------------------
# ● 获取属性有效度
#--------------------------------------------------------------------------
def state_ranks
return $data_enemies[@enemy_id].state_ranks
end
#--------------------------------------------------------------------------
# ● 属性防御判定
# state_id : 状态 ID
#--------------------------------------------------------------------------
def state_guard?(state_id)
return false
end
#--------------------------------------------------------------------------
# ● 获取普通攻击属性
#--------------------------------------------------------------------------
def element_set
return []
end
#--------------------------------------------------------------------------
# ● 获取普通攻击的状态变化 (+)
#--------------------------------------------------------------------------
def plus_state_set
return []
end
#--------------------------------------------------------------------------
# ● 获取普通攻击的状态变化 (-)
#--------------------------------------------------------------------------
def minus_state_set
return []
end
#--------------------------------------------------------------------------
# ● 获取行动
#--------------------------------------------------------------------------
def actions
return $data_enemies[@enemy_id].actions
end
#--------------------------------------------------------------------------
# ● 获取 EXP
#--------------------------------------------------------------------------
def exp
return $data_enemies[@enemy_id].exp
end
#--------------------------------------------------------------------------
# ● 获取金钱
#--------------------------------------------------------------------------
def gold
return $data_enemies[@enemy_id].gold
end
#--------------------------------------------------------------------------
# ● 获取物品 ID
#--------------------------------------------------------------------------
def item_id
return $data_enemies[@enemy_id].item_id
end
#--------------------------------------------------------------------------
# ● 获取武器 ID
#--------------------------------------------------------------------------
def weapon_id
return $data_enemies[@enemy_id].weapon_id
end
#--------------------------------------------------------------------------
# ● 获取放具 ID
#--------------------------------------------------------------------------
def armor_id
return $data_enemies[@enemy_id].armor_id
end
#--------------------------------------------------------------------------
# ● 获取宝物出现率
#--------------------------------------------------------------------------
def treasure_prob
return $data_enemies[@enemy_id].treasure_prob
end
#--------------------------------------------------------------------------
# ● 取得战斗画面 X 坐标
#--------------------------------------------------------------------------
def screen_x
return $data_troops[@troop_id].members[@member_index].x
end
#--------------------------------------------------------------------------
# ● 取得战斗画面 Y 坐标
#--------------------------------------------------------------------------
def screen_y
return $data_troops[@troop_id].members[@member_index].y
end
#--------------------------------------------------------------------------
# ● 取得战斗画面 Z 坐标
#--------------------------------------------------------------------------
def screen_z
return screen_y
end
#--------------------------------------------------------------------------
# ● 逃跑
#--------------------------------------------------------------------------
def escape
# 设置击中标志
@hidden = true
# 清除当前行动
self.current_action.clear
end
#--------------------------------------------------------------------------
# ● 变身
# enemy_id : 变身为的敌人 ID
#--------------------------------------------------------------------------
def transform(enemy_id)
# 更改敌人 ID
@enemy_id = enemy_id
# 更改战斗图形
@battler_name = $data_enemies[@enemy_id].battler_name
@battler_hue = $data_enemies[@enemy_id].battler_hue
# 在生成行动
make_action
end
#--------------------------------------------------------------------------
# ● 生成行动
#--------------------------------------------------------------------------
def make_action
# 清除当前行动
self.current_action.clear
# 无法行动的情况
unless self.movable?
# 过程结束
return
end
# 抽取现在有效的行动
available_actions = []
rating_max = 0
for action in self.actions
# 确认回合条件
n = $game_temp.battle_turn
a = action.condition_turn_a
b = action.condition_turn_b
if (b == 0 and n != a) or
(b > 0 and (n < 1 or n < a or n % b != a % b))
next
end
# 确认 HP 条件
if self.hp * 100.0 / self.maxhp > action.condition_hp
next
end
# 确认等级条件
if $game_party.max_level < action.condition_level
next
end
# 确认开关条件
switch_id = action.condition_switch_id
if switch_id > 0 and $game_switches[switch_id] == false
next
end
# 符合条件 : 添加本行动
available_actions.push(action)
if action.rating > rating_max
rating_max = action.rating
end
end
# 最大概率值作为 3 合计计算(0 除外)
ratings_total = 0
for action in available_actions
if action.rating > rating_max - 3
ratings_total += action.rating - (rating_max - 3)
end
end
# 概率合计不为 0 的情况下
if ratings_total > 0
# 生成随机数
value = rand(ratings_total)
# 设置对应生成随机数的当前行动
for action in available_actions
if action.rating > rating_max - 3
if value < action.rating - (rating_max - 3)
self.current_action.kind = action.kind
self.current_action.basic = action.basic
self.current_action.skill_id = action.skill_id
self.current_action.decide_random_target_for_enemy
return
else
value -= action.rating - (rating_max - 3)
end
end
end
end
end
end
wsx901123于2011-10-6 17:42补充以下内容:
求救啊…… dsu_plus_rewardpost_czw
作者:
77777741
时间:
2011-10-6 18:17
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1