Project1
标题:
谁能帮我把此脚本转化为XP版的?
[打印本页]
作者:
帕克
时间:
2011-5-3 21:14
标题:
谁能帮我把此脚本转化为XP版的?
本帖最后由 帕克 于 2011-5-3 21:15 编辑
http://rpg.blue/forum.php?mod=vi ... B%E8%A7%92%E8%89%B2
这个脚本应该挺简单的吧= =,从VX的RGSS2转化为RGSS。而且内容不多……
不过我是RGSS2脚本盲。。要不然我自己改了。。。。
不好意思,没悬赏,经验实在不多。。。。
大家帮帮忙啊
#_____________________________________________________________________________
# * 此脚本归66RPG - Idiot Script Association(ISA)及坏人协会所有,谢绝任何形式转载。
#-----------------------------------------------------------------------------
#==============================================================================
# ■ 主角当怪物属性战斗 - Actor Change Enemy
#------------------------------------------------------------------------------
# 遵守协议:66RPG - Idiot Script Association(ISA)
# 66RPG - 坏人协会
# 初始脚本:退屈无聊
# 更新优化:无
# 当前版本:1.0.0.1
#------------------------------------------------------------------------------
# 更新日记:退屈无聊(2011.3.26)
# - 初始化
# 退屈无聊(2011.3.26)
# - 修正level2计算时的BUG
# 退屈无聊(2011.3.27)
# - 修正获取actor等级的BUG
#==============================================================================
#--------------------------------------------------------------------------
# ● 资料记录
#--------------------------------------------------------------------------
module ISA
Use["主角当怪物战斗"] = [true, "1.0.0.1"]
System["主角当怪物战斗"] = {}
end
#--------------------------------------------------------------------------
# ● 设定部分
#--------------------------------------------------------------------------
module ISA
System["主角当怪物战斗"]["难度"] = 1
System["主角当怪物战斗"]["怪物名改为角色名"] = false
System["主角当怪物战斗"]["显示怪物等级"] = true
end
class Game_Enemy < Game_Battler
attr_accessor :level # 怪物等级
include ISA
def initialize(index, enemy_id)
super()
@index = index
@enemy_id = enemy_id
enemy = $data_enemies[@enemy_id]
@original_name = enemy.name.split("_")[0]
level1 = 0
level2 = 10000
for i in 1..$game_party.members.size
actor = $game_party.members[i-1]
level1 = actor.level if level1 < actor.level
level2 = actor.level if level2 > actor.level
end
@b = rand(level1 - level2)
@level = level2.to_i + @b.to_i + System["主角当怪物战斗"]["难度"]
@level = 99 if @level > 99
@level = enemy.name.split("_")[2].to_i if enemy.name.split("_")[2] != nil
@letter = ''
@plural = false
@screen_x = 0
@screen_y = 0
@cp = 65535
@battler_name = enemy.battler_name
@battler_hue = enemy.battler_hue
@hp = maxhp
@mp = maxmp
@exp_list = Array.new(101)
make_exp_list
@exp = @exp_list[@level]
@o = @original_name.split("_")[1]
end
def name
if System["主角当怪物战斗"]["怪物名改为角色名"]
if System["主角当怪物战斗"]["显示怪物等级"]
return $data_actors[enemy.name.split("_")[1].to_i].name + @level.to_s + "级"
else
return $data_actors[enemy.name.split("_")[1].to_i].name
end
else
if System["主角当怪物战斗"]["显示怪物等级"]
return enemy.name.split("_")[0] + @level.to_s + "级"
else
return enemy.name.split("_")[0]
end
end
end
def base_maxhp
@a_maxhp = $data_actors[enemy.name.split("_")[1].to_i].parameters[0, @level] / 3
return @a_maxhp.to_i
end
def base_maxmp
@a_maxmp = $data_actors[enemy.name.split("_")[1].to_i].parameters[1, @level]
return @a_maxmp
end
def base_atk # 获取基本攻击力
@a_atk = $data_actors[enemy.name.split("_")[1].to_i].parameters[2, @level]
return @a_atk
end
def base_def # 获取基本防御力
@a_def = $data_actors[enemy.name.split("_")[1].to_i].parameters[3, @level]
return @a_def
end
def base_spi # 获取基本防御力
@a_spi = $data_actors[enemy.name.split("_")[1].to_i].parameters[4, @level]
return @a_spi
end
def base_agi # 获取基本敏捷
@a_agi = $data_actors[enemy.name.split("_")[1].to_i].parameters[5, @level]
return @a_agi
end
#--------------------------------------------------------------------------
# 命中率、会心一击率、闪躲率、受伤率、属性修正、状态有效需要自己在怪物界面写
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# ● 计算经验值
#--------------------------------------------------------------------------
def make_exp_list
@exp_list[1] = @exp_list[100] = 0
m = $data_actors[enemy.name.split("_")[1].to_i].exp_basis
n = 0.75 + $data_actors[enemy.name.split("_")[1].to_i].exp_inflation / 200.0;
for i in 2..99
@exp_list[i] = @exp_list[i-1] + Integer(m)
m *= 1 + n;
n *= 0.9;
end
end
#--------------------------------------------------------------------------
# ● 获取经验值
#--------------------------------------------------------------------------
def exp
return (@exp_list[@level+1] / 7).to_i
end
#--------------------------------------------------------------------------
# ● 获取金钱
#--------------------------------------------------------------------------
def gold
@g = rand(@level + 1)
@g1 = rand(10)
@g1 += 10
return @g1 * @g
end
#--------------------------------------------------------------------------
# 掉落物品也在怪物界面设置
#--------------------------------------------------------------------------
end
复制代码
还有
#______________________________________________________________________________
# * 此脚本归66RPG - Idiot Script Association(ISA)所有,谢绝任何形式转载。
#______________________________________________________________________________
#==============================================================================
# ■ 接入包 - Access Package
#------------------------------------------------------------------------------
# 遵守协议:66RPG - Idiot Script Association(ISA)
# 当前版本:1.0.0.0
#------------------------------------------------------------------------------
# 更新日记:忧雪の伤(2011.3.11)
# - 初始化
#==============================================================================
#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
module ISA
Use = {}
System = {}
Switch = {}
Actor = load_data("Data/Actors.rvdata")
end
#--------------------------------------------------------------------------
# ● 资料记录
#--------------------------------------------------------------------------
module ISA
Use["接入包"] = [true, "1.0.0.0"]
end
复制代码
作者:
ACG中的GAME
时间:
2011-5-4 23:37
或者去VX提问比较好,在RMXP中懂VX的应该很少
作者:
Wind2010
时间:
2011-5-5 12:20
能告诉我这个脚本的功能是什么么XD直接按照功能写个试试
作者:
2012tao8.com
时间:
2011-5-5 16:03
提示:
作者被禁止或删除 内容自动屏蔽
作者:
帕克
时间:
2011-5-5 20:05
回复
Wind2010
的帖子
就是把怪物的属性用角色的属性来代替。。。可以做打自己什么的。。。怪物永远跟角色一样强大,十分需要之………………
作者:
Wind2010
时间:
2011-5-6 12:06
回复
帕克
的帖子
这样的话LZ的战斗系统是什么呢?这个脚本貌似是CP制的……
作者:
帕克
时间:
2011-5-6 12:19
回复
Wind2010
的帖子
额。。。。我是菜鸟横版回合制战斗,可以办到吗?
作者:
Wind2010
时间:
2011-5-6 13:00
$敌人使用角色数据 = []
#==============================================================================
# 使用说明
# 输入的格式:
# $敌人使用角色数据.push([敌人ID,模仿角色ID,maxhp差值,maxsp差值,力量差值,灵巧差值,速度差值,魔力差值,攻击力差值,物防差值,魔防差值,回避差值])
# 一 卅有点长是吧?如果全部差值为0的话可以不填
#==============================================================================
# 自定义区域
$敌人使用角色数据.push([1,1]) #这个是和角色完全一样的数值
$敌人使用角色数据.push([2,3,-50,-50]) #这个是比2号角色hpsp少50
#==============================================================================
# 脚本
#==============================================================================
class Game_Enemy
def base_maxhp
for i in $敌人使用角色数据
if i[0] == @enemy_id
return $game_actors[i[1]].base_maxhp + (i[2].nil? ? 0 : i[2])
end
end
return $data_enemies[@enemy_id].maxhp
end
def base_maxsp
for i in $敌人使用角色数据
if i[0] == @enemy_id
return $game_actors[i[1]].base_maxsp + (i[3].nil? ? 0 : i[3])
end
end
return $data_enemies[@enemy_id].maxsp
end
def base_str
for i in $敌人使用角色数据
if i[0] == @enemy_id
return $game_actors[i[1]].base_str + (i[4].nil? ? 0 : i[4])
end
end
return $data_enemies[@enemy_id].str
end
def base_dex
for i in $敌人使用角色数据
if i[0] == @enemy_id
return $game_actors[i[1]].base_dex + (i[5].nil? ? 0 : i[5])
end
end
return $data_enemies[@enemy_id].dex
end
def base_agi
for i in $敌人使用角色数据
if i[0] == @enemy_id
return $game_actors[i[1]].base_agi + (i[6].nil? ? 0 : i[6])
end
end
return $data_enemies[@enemy_id].agi
end
def base_int
for i in $敌人使用角色数据
if i[0] == @enemy_id
return $game_actors[i[1]].base_int + (i[7].nil? ? 0 : i[7])
end
end
return $data_enemies[@enemy_id].int
end
def base_atk
for i in $敌人使用角色数据
if i[0] == @enemy_id
return $game_actors[i[1]].base_atk + (i[8].nil? ? 0 : i[8])
end
end
return $data_enemies[@enemy_id].atk
end
def base_pdef
for i in $敌人使用角色数据
if i[0] == @enemy_id
return $game_actors[i[1]].base_pdef + (i[9].nil? ? 0 : i[9])
end
end
return $data_enemies[@enemy_id].pdef
end
def base_mdef
for i in $敌人使用角色数据
if i[0] == @enemy_id
return $game_actors[i[1]].base_mdef + (i[10].nil? ? 0 : i[10])
end
end
return $data_enemies[@enemy_id].mdef
end
def base_eva
for i in $敌人使用角色数据
if i[0] == @enemy_id
return $game_actors[i[1]].base_eva + (i[11].nil? ? 0 : i[11])
end
end
return $data_enemies[@enemy_id].eva
end
end
复制代码
这样可以么?
作者:
帕克
时间:
2011-5-6 13:37
回复
Wind2010
的帖子
不用差值,直接全部相等就可以了,2号怪物等于2号角色,你那个脚本我计算了一下= =生命比角色高很多啊,攻击力也很高。。。
作者:
Wind2010
时间:
2011-5-6 16:47
回复
帕克
的帖子
直接相等的话就只输两个数字可以了
不是生命之类的要全部一样么
作者:
帕克
时间:
2011-5-6 19:27
回复
Wind2010
的帖子
是啊,需要一样,可是为什么我测试的时候攻击力什么的都高角色好多。。。。
作者:
忧雪の伤
时间:
2011-5-6 20:38
#______________________________________________________________________________
# * 此脚本归66RPG - Idiot Script Association(ISA)所有,谢绝任何形式转载。
#______________________________________________________________________________
#==============================================================================
# ■ 角色变化敌人 - Actor Change Enemy
#------------------------------------------------------------------------------
# 遵守协议:66RPG - Idiot Script Association(ISA)
# 当前版本:1.0.0.0
#------------------------------------------------------------------------------
# 更新日记:忧雪の伤(2011.4.3)
# - 初始化
#==============================================================================
#--------------------------------------------------------------------------
# ● 资料记录
#--------------------------------------------------------------------------
module ISA
Use["角色变化敌人"] = [true, "1.0.0.0"]
System["角色变化敌人"] = {}
end
#--------------------------------------------------------------------------
# ● 设定部分
#--------------------------------------------------------------------------
module ISA
System["角色变化敌人"]["等级显示"] = true
System["角色变化敌人"]["名称改变"] = true
System["角色变化敌人"]["图形改变"] = true
end
#==============================================================================
# ■ RPG
#------------------------------------------------------------------------------
# 集合了 RPGXP 数据结构等的模块。
#==============================================================================
module RPG
#--------------------------------------------------------------------------
# ● 敌人的数据类。
#--------------------------------------------------------------------------
class Enemy
def name
return @name.split(/change/)[0]
end
def change_id
return @name.split(/change/)[1].to_i
end
end
end
#==============================================================================
# ■ Game_Enemy
#------------------------------------------------------------------------------
# 处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的
# 内部使用。
#==============================================================================
class Game_Enemy < Game_Battler
include ISA
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_reader :level
attr_reader :change_id
#--------------------------------------------------------------------------
# ● 初始化对像
# troop_id : 循环 ID
# member_index : 循环成员的索引
#--------------------------------------------------------------------------
alias :actor_change_enemy_initialize :initialize unless method_defined? :actor_change_enemy_initialize
def initialize(troop_id, member_index)
enemy_id = $data_troops[troop_id].members[member_index].enemy_id
@change_id = $data_enemies[enemy_id].change_id
level_list = 0
$game_party.actors.each do |actor|
level_list += actor.level
end
@level = level_list / $game_party.actors.size + rand(2) - rand(2)
@level = 99 if @level > 99
actor_change_enemy_initialize(troop_id, member_index)
end
#--------------------------------------------------------------------------
# ● 获取战斗者 文件名
#--------------------------------------------------------------------------
def battler_name
case System["角色变化敌人"]["图形改变"]
when true
return (@change_id != 0 ? $data_actors[@change_id].battler_name : @battler_name)
when false
return @battler_name
end
end
#--------------------------------------------------------------------------
# ● 获取名称
#--------------------------------------------------------------------------
alias :actor_change_enemy_name :name unless method_defined? :actor_change_enemy_name
def name
level = System["角色变化敌人"]["等级显示"] ? " Lv" + @level.to_s : ""
case System["角色变化敌人"]["名称改变"]
when true
return (@change_id != 0 ? $data_actors[@change_id].name : actor_change_enemy_name) + level
else
return actor_change_enemy_name + level
end
end
#--------------------------------------------------------------------------
# ● 获取基本 MaxHP
#--------------------------------------------------------------------------
alias :actor_change_enemy_base_maxhp :base_maxhp unless method_defined? :actor_change_enemy_base_maxhp
def base_maxhp
if @change_id != 0
n = change_parameters(@change_id, 0, @level)
else
n = (actor_change_enemy_base_maxhp * wave).to_i
end
return n
end
#--------------------------------------------------------------------------
# ● 获取基本 MaxSP
#--------------------------------------------------------------------------
alias :actor_change_enemy_base_maxsp :base_maxsp unless method_defined? :actor_change_enemy_base_maxsp
def base_maxsp
if @change_id != 0
n = change_parameters(@change_id, 1, @level)
else
n = (actor_change_enemy_base_maxsp * wave).to_i
end
return n
end
#--------------------------------------------------------------------------
# ● 获取基本力量
#--------------------------------------------------------------------------
alias :actor_change_enemy_base_str :base_str unless method_defined? :actor_change_enemy_base_str
def base_str
if @change_id != 0
n = change_parameters(@change_id, 2, @level)
else
n = (actor_change_enemy_base_str * wave).to_i
end
return n
end
#--------------------------------------------------------------------------
# ● 获取基本灵巧
#--------------------------------------------------------------------------
alias :actor_change_enemy_base_dex :base_dex unless method_defined? :actor_change_enemy_base_dex
def base_dex
if @change_id != 0
n = change_parameters(@change_id, 3, @level)
else
n = (actor_change_enemy_base_dex * wave).to_i
end
return n
end
#--------------------------------------------------------------------------
# ● 获取基本速度
#--------------------------------------------------------------------------
alias :actor_change_enemy_base_agi :base_agi unless method_defined? :actor_change_enemy_base_agi
def base_agi
if @change_id != 0
n = change_parameters(@change_id, 4, @level)
else
n = (actor_change_enemy_base_agi * wave).to_i
end
return n
end
#--------------------------------------------------------------------------
# ● 获取基本魔力
#--------------------------------------------------------------------------
alias :actor_change_enemy_base_int :base_int unless method_defined? :actor_change_enemy_base_int
def base_int
if @change_id != 0
n = change_parameters(@change_id, 5, @level)
else
n = (actor_change_enemy_base_int * wave).to_i
end
return n
end
#--------------------------------------------------------------------------
# ● 获取基本攻击力
#--------------------------------------------------------------------------
alias :actor_change_enemy_base_atk :base_atk unless method_defined? :actor_change_enemy_base_atk
def base_atk
return (actor_change_enemy_base_atk * wave).to_i
end
#--------------------------------------------------------------------------
# ● 获取基本物理防御
#--------------------------------------------------------------------------
alias :actor_change_enemy_base_pdef :base_pdef unless method_defined? :actor_change_enemy_base_pdef
def base_pdef
return (actor_change_enemy_base_pdef * wave).to_i
end
#--------------------------------------------------------------------------
# ● 获取基本魔法防御
#--------------------------------------------------------------------------
alias :actor_change_enemy_base_mdef :base_mdef unless method_defined? :actor_change_enemy_base_mdef
def base_mdef
return (actor_change_enemy_base_mdef * wave).to_i
end
#--------------------------------------------------------------------------
# ● 获取金钱
#--------------------------------------------------------------------------
alias :actor_change_enemy_gold :gold unless method_defined? :actor_change_enemy_gold
def gold
return (actor_change_enemy_gold * wave).to_i
end
#--------------------------------------------------------------------------
# ● 获取浮动
#--------------------------------------------------------------------------
def wave
return 1 + 0.05 * (@level - 1)
end
#--------------------------------------------------------------------------
# ● 获取变化参数
# change_id : 变化 ID
# kind : 种类
# level : 等级
#--------------------------------------------------------------------------
def change_parameters(change_id, kind, level = 1)
return $data_actors[change_id].parameters[kind, level]
end
end
复制代码
对蛐蛐的脚本感兴趣的……嘛……我什么都不知道。
作者:
帕克
时间:
2011-5-9 12:20
本帖最后由 帕克 于 2011-5-9 13:33 编辑
回复
忧雪の伤
的帖子
此脚本跟菜鸟横版冲突。。。。不,不是冲突。。。就是加了菜鸟横版后此脚本修改的怪物能力值就。。。。。怪物能力本来应该跟角色一样的= =可是加了菜鸟横版后都比角色弱很多。。。。行走图也显示不出来。。
放弃了菜鸟横版。。。。可是为什么敌人的攻击力永远跟不上角色?角色打敌人一下100多,敌人打过来1。。。。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1