DNA图谱 / 问答 / 问答详情

RMXP寻路算法

2023-08-06 10:36:41
TAG: 算法
共1条回复
阿啵呲嘚

  #==============================================================================

  # ■ Find_Path

  #------------------------------------------------------------------------------

  # 寻路算法--完整鼠标系统(四方向)专用版

  # By whbm

  #==============================================================================

  class Find_Path

  #--------------------------------------------------------------------------

  def initialize #初始化

  @open_list = []

  @close_lise = []

  @path = []

  end #结束初始化

  #--------------------------------------------------------------------------

  def fp_passable?(x, y, d, tr_x = -2, tr_y = -2) #开始判定通行

  return false if (tr_x == @unable_xa or

  tr_x == @unable_xb or

  tr_y == @unable_ya or

  tr_y == @unable_yb)

  if $game_player.passable?(x, y, d)

  return true

  else

  return false

  end

  end #结束判定通行

  #--------------------------------------------------------------------------

  def get_g(now_point) #开始计算G值

  d = now_point[2]

  return 0 if d == 5

  father_point = get_father_point(now_point)

  g = father_point[3] + 10

  return g

  end #结束计算G值

  #--------------------------------------------------------------------------

  def get_h(now_point) #开始计算H值

  now_x = now_point[0]

  now_y = now_point[1]

  #print @trg_x,now_x,@trg_y,now_y

  h = (@trg_x - now_x).abs + (@trg_y - now_y).abs

  return h * 10

  end #结束计算H值

  #--------------------------------------------------------------------------

  def get_f(now_point) #开始计算F值

  f = now_point[3] + now_point[4]

  return f

  end #结束计算F值

  #--------------------------------------------------------------------------

  def get_point(x, y) #取已知坐标点

  if @open_list.size != 0

  @open_list.each do |point|

  if point[0] == x and point[1] == y

  return point

  break

  end

  end

  end

  if @close_list.size != 0

  @close_list.each do |point|

  if point[0] == x and point[1] == y

  return point

  break

  end

  end

  end

  end #结束取已知坐标点

  #--------------------------------------------------------------------------

  def get_father_point(now_point) #取已知点的父节点

  d = now_point[2]

  return now_point if d == 5

  x = now_point[0] + (d == 6 ? 1 : (d == 4 ? -1 : 0))

  y = now_point[1] + (d == 2 ? 1 : (d == 8 ? -1 : 0))

  return get_point(x, y)

  end #结束取已知点的父节点

  #--------------------------------------------------------------------------

  def new_point(x, y, d) #开始建立新节点

  #print x,y,d

  point = [x, y, d]

  point.push get_g(point)

  point.push get_h(point)

  point.push get_f(point)

  return point

  end #结束建立新节点

  #--------------------------------------------------------------------------

  def get_direction(self_x, self_y, trg_x, trg_y)

  if trg_x > self_x

  if trg_y - self_y > - ( trg_x - self_x ) and

  trg_y - self_y < ( trg_x - self_x )

  return 6

  end

  if trg_y - self_y > ( trg_x - self_x )

  return 2

  end

  if trg_y - self_y < - ( trg_x - self_x )

  return 8

  end

  end

  if trg_x < self_x

  if trg_y - self_y > - ( self_x - trg_x ) and

  trg_y - self_y < ( self_x - trg_x )

  return 4

  end

  if trg_y - self_y > ( self_x - trg_x )

  return 2

  end

  if trg_y - self_y < - ( self_x - trg_x )

  return 8

  end

  end

  end

  #--------------------------------------------------------------------------

  def get_d_x_y(x, y, d)

  d_x = x + (d == 6 ? 1 : (d == 4 ? -1 : 0))

  d_y = y + (d == 2 ? 1 : (d == 8 ? -1 : 0))

  return d_x, d_y

  end

  #--------------------------------------------------------------------------

  def find_short_path_other(self_x, self_y, trg_x, trg_y,

  real_self_x, real_self_y, real_trg_x, real_trg_y)

  @self_x = self_x

  @self_y = self_y

  @now_x = self_x

  @now_y = self_y

  @trg_x = trg_x

  @trg_y = trg_y

  @path = []

  direction = get_direction(real_self_x, real_self_y, real_trg_x, real_trg_y)

  @now_trg_x, @now_trg_y = get_d_x_y(@self_x, @self_y, direction)

  while fp_passable?(@now_x, @now_y, direction)

  @path.push direction

  @now_x = @now_trg_x

  @now_y = @now_trg_y

  @now_trg_x, @now_trg_y = get_d_x_y(@now_x, @now_y, direction)

  end

  return @path

  end

  #--------------------------------------------------------------------------

  def find_short_path(self_x, self_y, trg_x, trg_y,

  real_self_x, real_self_y, real_trg_x, real_trg_y) #开始搜索路径

  return find_short_path_other(self_x, self_y, trg_x, trg_y,

  real_self_x, real_self_y, real_trg_x, real_trg_y) if not

  (fp_passable?(trg_x, trg_y + 1, 8) or

  fp_passable?(trg_x + 1, trg_y, 4) or

  fp_passable?(trg_x - 1, trg_y, 6) or

  fp_passable?(trg_x, trg_y - 1, 2)) and @goal_type != 1

  #根据屏幕限定搜索面积..加速

  @unable_xa = $game_map.display_x / 128 - 1

  @unable_ya = $game_map.display_y / 128 - 1

  @unable_xb = $game_map.display_x / 128 + 20

  @unable_yb = $game_map.display_y / 128 + 20

  @self_x = self_x

  @self_y = self_y

  @now_x = self_x

  @now_y = self_y

  @trg_x = trg_x

  @trg_y = trg_y

  @open_list = []

  @close_list = []

  #准备搜索

  #print @self_x,@self_y

  @now_point = new_point(@self_x, @self_y, 5) #令起始点为当前点

  @open_list.push @now_point #将当前点加入关闭列表

  #开始搜索

  begin

  loop do

  check_trg = check_around_point(@now_point)

  if check_trg == true

  @path = get_path

  break

  end

  @now_point = get_lowest_f_point

  if @now_point == [] or @now_point == nil

  @path = []

  break

  end

  end

  rescue Hangup

  retry

  end

  return @path

  end #结束搜索路径

  #--------------------------------------------------------------------------

  def find_player_short_path(trg_x, trg_y,

  real_trg_x, real_trg_y) #寻找角色的最短路径

  self_x = $game_player.x

  self_y = $game_player.y

  real_self_x = $game_player.screen_x

  real_self_y = $game_player.screen_y

  @goal_type, event = $game_map.check_event_custom_exist(real_trg_x, real_trg_y)

  if @goal_type == 1

  trg_x = event.x

  trg_y = event.y

  end

  return find_short_path(self_x, self_y, trg_x, trg_y,

  real_self_x, real_self_y, real_trg_x, real_trg_y)

  end #结束角色的寻找路径

  #--------------------------------------------------------------------------

  def get_path #取得最终的路径

  path = []

  now_point = @open_list[@open_list.size - 1]

  path.push(10 - now_point[2])

  last_point = now_point

  loop do

  now_point = get_father_point(now_point)

  break if now_point[2] == 5

  path.push(10 - now_point[2])

  end

  return path.reverse

  end #结束取得最终的路径

  #--------------------------------------------------------------------------

  def get_lowest_f_point #开始取得最低F值的点

  if @open_list == []

  return []

  end

  last_lowest_f_point = @open_list[0]

  @open_list.each do |point|

  last_lowest_f_point = point if point[5] < last_lowest_f_point[5]

  end

  return last_lowest_f_point

  end #结束取得最低F值点

  #--------------------------------------------------------------------------

  def check_around_point(point) #开始检查已知点的八方节点

  for d in [2, 4, 6, 8]

  x = point[0] + (d == 6 ? 1 : (d == 4 ? -1 : 0))

  y = point[1] + (d == 2 ? 1 : (d == 8 ? -1 : 0))

  if in_close_list?(x, y) #在关闭列表中

  next

  elsif in_open_list?(x, y) #在开启列表中

  get_new_g_point = new_point(x, y, 10 - d)

  get_last_g_point = get_point(x, y)

  if get_new_g_point[3] >= get_last_g_point[3]

  next

  else

  #如果改变父节点是新G值更小则确定改变

  @open_list[@open_list.index(get_last_g_point)] = get_new_g_point

  end

  else

  if fp_passable?(point[0], point[1], d, x, y)

  # 如果不在开启列表中、且不在关闭列表中、且通行则添加它到新八周节点

  @open_list.push new_point(x, y, 10 - d)

  #如果将目标点添加到了开启列表中就返回true

  return true if x == @trg_x and y == @trg_y

  return true if @goal_type == 1 and ([1, -1].include?(x - @trg_x) and y - @trg_y == 0) or ([1, -1].include?(y - @trg_y) and x - @trg_x == 0)

  end

  end

  end

  #此刻没有找到目标点并将当前点加入关闭列表并在开启列表中删除

  @close_list.push point

  @open_list.delete(point)

  #此刻没找到目标点并返回false

  return false

  end #结束计算已知点的八方节点

  #--------------------------------------------------------------------------

  def in_open_list?(x, y) #开始检查谋点是否在开启列表中

  @open_list.each do |point|

  return true if point[0] == x and point[1] == y

  end

  return false

  end #结束检查谋点是否在开启列表中

  #--------------------------------------------------------------------------

  def in_close_list?(x, y) #开始检查谋点是否在关闭列表中

  @close_list.each do |point|

  return true if point[0] == x and point[1] == y

  end

  return false

  end #结束检查谋点是否在关闭列表中

  #--------------------------------------------------------------------------

  end

相关推荐

什么是RMXP

RMXP,即RPG Maker XP(RPG游戏制作大师 XP)
2023-08-06 00:21:521

RMXP必须在1024x768的屏幕分辨率下运行吗???

很荣幸能为您解答这个问题这个和分辨率没关系的,只是无论屏幕分辨率多少,RMXP1.03/1.02/2003制作出来的游戏窗口的分辨率为800*600此答案来自百度知道RMXP吧,如满意请采纳,如有疑问请补充,我会在第一时间回复
2023-08-06 00:22:002

RMXP能做网络游戏吗

能,网上流传几个方法:1 RMXP有个存档的脚本,可以打包出含有游戏数据的存档文件,有人用两台win7电脑设置家庭组(两台电脑都可见的文件夹),用这个脚本把存档文件打包到家庭组,另一台电脑读取该存档文件,这样两台电脑就可以进行信息交流了2 用其他语言制作一个局域网联机引擎,该引擎可以从游戏中获取信息然后发送到另一台电脑,另一台电脑获取信息后,就可以联机了简单的联机就是传输简单的行动命令给对方电脑,改变对方电脑上数据,显示不同效果。你可以把联机理解为复杂的聊天室和交互方式
2023-08-06 00:22:072

RMXP1.03是什么

RMXP(1.03是它的版本)是一款传统RPG游戏的制作软件,如若能懂它的脚本语言,那么就能将它的功能发挥的更强大。 相关网站:66RPG
2023-08-06 00:22:153

RMXP如何把“等级”修改为其他名称

可以的,在游戏里任何时候都可以使用事件第三页第三项“名称输入处理”来变更角色的姓名。但是在这里修改的话,必须把字库也改一改,不然输入界面里全部是假名。字库在脚本编辑器(f11)里的window_nameinput里修改。只能修改字库里的单字,中间的半角引号、顿号千万不能删掉,修改完毕后切记保存。当然,姓名也可以用事件第三页的“更改角色姓名”来作处理,不过这个是针对制作人而言的,没有字库的限制。另外需要注意的楼上也提到了,就是角色姓名的问题,对话时要显示主角姓名就必须要用[*]这样的代码了,数据库中的角色的id是几,那么*号处就写数字几。例如角色列表里“阿杰”的编号是001,那么以后不管阿杰被换成什么名字,只要在对话框里用代码[1]就能显示出阿杰当前的名字了。其他位置的同理。
2023-08-06 00:22:222

RMXP中第一命中率和第二命中率有什么区别?

第一命中率是对自己命中率的计算。普通攻击第一命中率 = 攻击方当前状态下的命中率 %技能攻击攻击力 F 为 1 以上(物理攻击)第一命中率 = 技能的命中率 × 攻击方当前状态下的命中率 %攻击力 F 为 0(物理攻击以外)第一命中率 = 技能的命中率使用物品第一命中率 = 物品的命中率比方说你当前有个减益BUFF,导致命中率是50%,技能本身的命中率是50%,那么最终结果就是命中率为25%第二命中率是对双方属性的综合计算。包括对方的速度(不是敏捷,敏捷是对方的命中率,速度是回避率)、装备效果和自己的灵巧、装备效果。在RM中有一个关于“回避力”的计算: 8 * 被攻击者的速度 / 攻击方的灵巧 +被攻击方的回避修正然后(接下来这段直接调用的F1,别介意哈)普通攻击第二命中率 = 100 - 回避力技能攻击第二命中率 = 100 -(回避力 × 技能的回避 F ÷ 100)使用物品第二命中率 = 100恢复生命第二命中率 = 100其实,这是两种不同的算法(至少我是这么理解的……)两者之间的联系不太清楚。但是区别就在于是否考虑对方的属性。第一命中率只计算自己属性,第二命中率计算对方的属性。
2023-08-06 00:22:291

RMXP如何加密

打开RMXP,找到你想加密的文件,点击左上角的文件,然后点“压缩游戏数据”后,选好保存的文件夹,注意看下面有一个小框,写着“生成加密文件”,点击打上√,这样在点确定你的游戏软件就加密了!希望能帮到你!
2023-08-06 00:22:463

RMXP制作技术综合考卷答案

1、RMXP制作地图时有多少层?3层2、事件的显示文章中,有个黑色的小箭头,是干什么用的?RMXP默认对话窗口的文字右边界线,再往右打就会容易超出文字框3、设置移动路线的跳跃指令,如果要让在(4,4)坐标的NPC往右跳5格,那么要怎样填写跳跃的X、Y坐标?(5,0)4、角色的各种能力值中,怎样设置才能使角色某段时间处于巅峰状态,等级一过反而能力降低(举例:9级的时候HP、SP最大值均为9999,而10级则均变为7000)?在角色能力值设置中,某段时期的能力空白处一点,那段时期的该能力值则会处于鼠标点击的高度处【附注,你可以用物品设置,但一般这样简单】5、事件指令中“中断事件处理”和“暂时消除事件”的区别在于什么?中断事件处理是让事件的内容执行到这项指令时停止,再次触发事件时也会在此停止;暂时消除事件是让事件在地图上的图片消失,但事件内容仍然执行,再次回到地图时又会恢复1、要让主角进入一个山洞后光变暗,出来后恢复,可以在场所移动的指令后,使用__更改画面色调_指令使画面变暗,再在出来的场所移动指令后,用相同的指令更改回来( 2分)。2、输入对话时更改文字颜色的控制符是_C[n]_____,显示变量数值的控制符是___V[n]____(2分)。3、主角进入某座建筑,转换地图的事件触发条件应为__场景移动【附注,如果是开始条件可以为与主角接触打上勾】________ ;开启宝箱的事件,触发条件应为___先增减金钱,在设置独立开关新建页,在事件出现条件上的独立开关打钩_______剩下的我没时间写。。另外脚本部分肯能不会。
2023-08-06 00:22:543

RMXP怎么添加物品图片,不是大图片

自带的不行就自己下载图片,用ps做成32×32的小图块(只要是32×32的倍数都行),然后导入到rmxp里面,在设置一下通行方式就行了。至于手动开关的门,在事件里设置左下角有这个选项。反复使用的话,在门的事件页里设置每次更改一个变量,通过变量来决定门的开关状态。大概思想就是这样,具体的你自己去尝试就行了。
2023-08-06 00:23:021

关于RMXP的N多问题......能回答1.2.3.6.就OK了,能回答全部就最好。

1、在A地图转换位置(比如说门的地方)建立一个事件,事件执行内容为场景移动,并设定好移动坐标(假设为B地图的某个坐标),触发条件为与事件接触。这样主角在走到门或其他出口处就会自动转换到目标地图的目标坐标了。2、和第一个问题一样,不同的就是在B地图的门的位置再设定一个事件,内容同上,不过要注意的就是不要让你传送的坐标为你设定事件的地方,不然的话会出现卡死,不断循环。3、在NPC事件的地方新建一个事件页,内容为空,图片为空,然后再NPC事件页里最后面加上一个独立开关A/B/C/D=ON的内容。事件开始条件为独立开关A/B/C/D=ON,事件执行条件为自动执行,即可。4、替换队员的内容很鲜明,即加入或离开队伍,首先要在资料库中设置好角色。另外初始化这个选项点上即意味着登场角色是初始等级,看情况是否需要点上。5、首先要看下资料库里面系统页面中初始同伴是否是2个,另外,RMXP中只能同时登场1个以上4个一下角色,如果要更改为4个以上,就必须通过脚本的修改。6、宝箱的设置如同NPC的设置,分两个事件页,第一个事件页出现条件为空,开始条件为决定建。事件执行内容为显示文本:获得XXX X个,物品增减:XXX +X个。独立开关A=ON;事件页2出现条件为独立开关A=ON;执行内容为空。图片为空的话即是打开宝箱后宝箱会消失,如果设置为宝箱打开的图片,则打开宝箱后即可转换为宝箱打开的图片,开始条件为自动执行。7、在数据库中,敌人页面里面,可以进行对每种敌人掉落物品及概率的设定。但是每种敌人只能设置一个物品,如果想设置多个的话,必须进行脚本修改。综上所述,实际上你的提问基本上是基于对事件设定的不熟练以及逻辑(不是智商)不强,可以去阅读下关于RMXP的教程,活用事件能力可以实现大多数事件。
2023-08-06 00:23:202

求教怎么用RMXP修改游戏

首先你要确定那个游戏是用RMXP做的,且未加密。RMXP制作的游戏文件夹里一般会有RGSS103J.dll经过加密的游戏 文件夹里一般存在Game.rgssad如果都不存在,那这说明这游戏并非RMXP所制,也就不能用XP修改。ps:有RGSS200.dll和game.rgss2a请用RMVX,有RGSS300.dll和game.rgss3a请用RMVA。 ps2:存在Game.rvproj2、Game.rvproj、Game.rxproj文件 直接打开就好,有这玩意的游戏八成没加密。
2023-08-06 00:23:271

为什么我的RMXP游戏打不开(并非RMXP打不开)?

首先你看一下你的主角初期位置有没有设置.没有设置的话可以到事件栏里在你想要的位置按鼠标右键,然后选择最后一项"设置主角初期位置",就可以了.然后到脚本里看看有没有相同类型的,因为也有可能会有脚本冲突.如果你不知道有什么类型的,干脆就把添加的脚本全部删了>_<那样游戏的所有功能会恢复成原样>_<RMXP和RMVX是没有关系的,VX你可以删掉了>_<如果还不行就到任务管理器的进程裏去看看是不是哪裏有个文件和RMXP不能兼容>_<当然还是不要随便停止任务了,因为停止会导致电脑出现问题啊啊啊>_<还有数据库,你也看一下,在系统那裏,是不是有什么你改了不能设置.还有游戏初期同伴是不是有.如果没有的话.就双击设置>_<我也刚刚才用,不知道很多.如果都不是这些的话就请教别人拉>_<
2023-08-06 00:23:341

RMXP怎么改伤害的公式

  伤害公式在Game_Battler 3里修改,里面有注解。  ==================================================  其实xp的帮助文件里已经写得很详细了,按F1就可以查看。以下为帮助文件拷贝:  RPGXP 默认的战斗系统,采用以下的计算式。  攻击方角色表示为 A,被攻击方角色以 B 表示。  第一命中率判定普通攻击  第一命中率 = A 当前状态下的命中率 %  技能攻击  攻击力 F 为 1 以上(物理攻击)  第一命中率 = 技能的命中率 × A 当前状态下的命中率 % ÷ 100  攻击力 F 为 0(物理攻击以外)  第一命中率 = 技能的命中率  使用物品  第一命中率 = 物品的命中率  A 在正常状态下的命中率为 100。  必杀机率判定普通攻击  必杀率 = 4 × A 的灵巧 ÷ B 的速度  技能攻击  必杀率 = 0  使用物品  必杀率 = 0  必杀率即奋力一击(通常会使敌方常受到较大的损伤)发生的机率,如果必杀率为 4 则表示每 4 个回合就出现一次奋力一击。  伤害计算普通攻击  威力 = A 的攻击力 - (B 的物理防御 ÷ 2)  放大率 = 20 + A 的力量  分散度 = 15  威力的最小值:0  技能攻击  技能的威力值为正数  威力 = 技能的威力  + (A 的攻击力 × 技能的攻击力 F ÷ 100)  - (B 的物理防御 × 技能的物理防御 F ÷ 200)  - (B 的魔法防御 × 技能的魔法防御 F ÷ 200)  威力的最小值:0  技能的威力值为负数  威力 = 技能的威力  放大率 = 20  + (A 的力量 × 技能的力量 F ÷ 100)  + (A 的灵巧 × 技能的灵巧 F ÷ 100)  + (A 的速度 × 技能的速度 F ÷ 100)  + (A 的魔力 × 技能的魔力 F ÷ 100)  分散度 = 技能的分散度  使用物品  HP 回复量为负数  威力 = - HP 回复量  - (B 的物理防御 × 物品的物理防御 F ÷ 20)  - (B 的魔法防御 × 物品的魔法防御 F ÷ 20)  威力的最小值:0  HP 回复量为正数  威力 = - HP 回复量  放大率 = 20  分散度 = 物品的分散度  伤害 = 威力 × 放大率 ÷ 20 × 属性修正 × 必杀修正 × 防御修正 ( ± 分散度 %)  属性修正:有攻击属性时,在 B 的属性有效度中选择最弱的进行修正,修正值如下。  A:200%,B:150%,C:100%,D:50%,E:0%,F:-100%  另外,攻击属性符合 B 防具的防御属性的,伤害减半,修正值为 1/2。  有多个相同防御属性的,减半效果要叠加。  必杀修正:伤害值为正数,奋力一击发动时修正值为 2。  防御修正:伤害值为正数,B 防御时修正值为 1/2。  第二命中率判定伤害值为正数  B 为正常状态  回避力 = 8 × B 的速度 ÷ A 的灵巧 + B 的回避修正  普通攻击  第二命中率 = 100 - 回避力  技能攻击  第二命中率 = 100 -(回避力 × 技能的回避 F ÷ 100)  使用物品  第二命中率 = 100  B 附加有「不能回避攻击」状态  第二命中率 = 100  伤害值为负数(回复)  第二命中率 = 100  逃跑成功率逃跑成功率 =50 × 角色的速度平均值 ÷ 敌人的速度平均值
2023-08-06 00:24:231

关于RMXP语言里面的图片显示问题

$game_screen.pictures[图片编号].show("图片名字", 原点, 画面x坐标, 画面y坐标, x轴放大率, y轴放大率, 不透明度, 显示方式)这个稍微复杂些,分开来讲会比较好~~~图片名字就是要显示的图片的名字。原点就是显示图片的原点位置,0代表左上,1代表中心。画面的x坐标和y坐标就是图片原点的画面的x坐标和y坐标。x轴放大率和y轴放大率就是以原点为中心的x方向和y方向放大率,100为正常大小。不透明度就是图片的不透明度,为0到255。显示方式其实就是图片的合成方式,0是正常,1是加法,2是减法。比如$game_screen.pictures[1].show("BunnyGod", 1, 320, 240, 100, 100, 255, 0)就是在画面中心显示一张正常大小,完全不透明,显示方式为正常,编号为1的叫做BunnyGod的图片。另外:你后面为什么会有个end?
2023-08-06 00:24:302

RMXP游戏怎么打包成一个game.exe

首先,你的游戏涉及到的素材,都先复制到你的文件工程文件夹里,比如你用了阿尔西斯的行走图,你就得在rmxp的文件夹里给他复制过来,复制到该放的地方。然后打包就行了。我做的几个可以存u盘里到处玩的游戏就是这么做的。然后game.exe的图标你可以下一个改图标的软件,或者自己琢磨琢磨怎么改就ok。如果想省事就用提取脚本,虽然也不一定100%提取。http://www.66rpg.com/articles/2823。
2023-08-06 00:24:394

请问在rmxp里可以使用其它字体吗?

当然可以,但是必须保证电脑上有这种字体,而且对外发行的时候,一定确保对面也有,否则没法玩。你可以把字体放到文件夹里面然后在发行。在main脚本里面有字体的设定,改掉就行了,你可以用“,”隔开,第一个不行就自动切换到下一个。然后改完之后就是你要的效果了……
2023-08-06 00:24:471

请问大家一个关于RMXP的问题,Data里面那些文件各是RMXP里的什么?

Actors.rxdata 角色Animations.rxdata 魔法Armors.rxdata 防具Classes.rxdata 初始角色CommonEvents.rxdata 公共事件Enemies.rxdata 敌人Items.rxdata 物品Map***.rxdata 游戏中的第***号地图 MapInfos.rxdata 地图信息,应该是地图上的事件等Scripts.rxdata 脚本(ruby)Skills.rxdata 特技States.rxdata 状态System.rxdata 系统(据本座推算还包括属性)Tilesets.rxdata 图块Troops.rxdata 敌人的队伍Weapons.rxdata 武器
2023-08-06 00:25:111

为什么我的RMXP游戏打不开(并非RMXP打不开)?

首先你看一下你的主角初期位置有没有设置.没有设置的话可以到事件栏里在你想要的位置按鼠标右键,然后选择最后一项"设置主角初期位置",就可以了.然后到脚本里看看有没有相同类型的,因为也有可能会有脚本冲突.如果你不知道有什么类型的,干脆就把添加的脚本全部删了>_<那样游戏的所有功能会恢复成原样>_<RMXP和RMVX是没有关系的,VX你可以删掉了>_<如果还不行就到任务管理器的进程裏去看看是不是哪裏有个文件和RMXP不能兼容>_<当然还是不要随便停止任务了,因为停止会导致电脑出现问题啊啊啊>_<还有数据库,你也看一下,在系统那裏,是不是有什么你改了不能设置.还有游戏初期同伴是不是有.如果没有的话.就双击设置>_<我也刚刚才用,不知道很多.如果都不是这些的话就请教别人拉>_<
2023-08-06 00:25:181

RMXP制作游戏如何让打开游戏就是全屏?

RMXP如何让他一运行游戏就自动全屏?回答如下:打开地图编辑器按下F11然后在脚本Main中添加以下内容..#自动全屏幕 unless $keybd $keybd = Win32API.new "user32.dll", "keybd_event", ["i", "i", "l", "l"], "v" $keybd.call 0xA4, 0, 0, 0 $keybd.call 13, 0, 0, 0 $keybd.call 13, 0, 2, 0 $keybd.call 0xA4, 0, 2, 0
2023-08-06 00:25:371

RPG Maker XP做的游戏速度很慢

如果您是开发者的话,通过RMXP的游戏测试启动游戏,然后按F2,就可以在游戏窗口的标题上显示FPS,如果始终无法接近40,证明是当前这台计算机不满足游戏内部某些场景的执行效率,就是说电脑配置和程序复杂度不协调,说难听一点的话,就是您的事件/脚本指令存在问题。 如果看到FPS确实是在38~40这样变动,但还是觉得慢,那么可以打开脚本编辑器,在所有脚本的最上方新建一个脚本,并输入内容:Graphics.frame_rate = 60 这样可以把RMXP游戏的帧率从默认的40帧每秒提升到和VX、VA一样的60帧每秒。这个数值修改后就一直有效,注意如果修改得过大,在低配置电脑上运行的效率会变得更加低下。 如果您是玩家,玩很多RMXP游戏都有该现象,那么可能您确实需要检查检查您的电脑是否还正常了,因为一般来说,RMXP游戏对配置的需求已经比较低。
2023-08-06 00:25:502

rmxp rmvx有什么区别

操作界面有一些不同,素材上也有很大的不同。最直观看来,XP的素材颜色比较素淡,而VX的素材颜色比较鲜艳。VX对于图块素材的限制也比较大,只有A~E这5个档位,A到D是自带图块,E是预留出来给你自己添加图块的。但是VX在图像的显示方面比XP更加直观,而且预置了头像显示功能,不用再像XP那样加脚本、一点点调坐标了。脚本上也有不同,XP用的是RGSS,而VX用的是RGSS2.所以这两个版本的RM脚本不一定是兼容的。还有许多细节上的不同,可以参考这个:http://www.hotskys.com/bbs/viewthread.php?tid=5
2023-08-06 00:26:061

怎么用rpg maker打开游戏的工程文件

1.首先,创建一个新项目。注意,这是一个修改过的项目文件。2.然后耐心等系统建立项目文件。3.然后看下面,你会看到默认的地图大小是17X13。4.保存项目。这一步很重要。5.然后打开document\Games\Project1\data。6.MAP001开放。JSON和记事本。7.将数值改为800,800,如图所示,然后进入游戏,可以看到地图的上限尺寸已经修改成功。
2023-08-06 00:26:422

RMXP加密的游戏怎么解密?

有些是隐藏了工程你可以调整到显示所有文件看一下.. 这样还不行..你看那有没有加密文件..没有的话你随便复制个工程打开文件 到那里....如果你是想游戏改属性...而又有加密文件.. 你就先在你想解密的游戏存个档...在把挡移到可以打开工程 的...游戏里...(建议自己开个工程)...你打开那个工程. 会有缺少文件..你就随便搞素材个文件(要那个文件夹里的)..改成加密游戏的 文件名.....在看一下他那个是第几张地图...然后再开个地图...制作 事件..记得自动执行...在事件最后召换存档...召唤存档前面 加调整人物属性的东西....可是不是那个人物就不知道..因为 人物是第几个..不知道...存完后...把存档放到加密文件游戏的文件夹里.. 就行了....然后运行游戏..载入存档..还有...载入存档的脚本.. 不一样是不行的....这都是我玩了1年..RMXP游戏自己摸索的.. 正不正规不知道.....反正我只是想改属性...改成很厉害.. 懒的在加密游戏练级..所以才这样的...
2023-08-06 00:28:101

金山游侠修改RMXP游戏穿墙(50分

游侠只能改数值吧,没听说能把游戏改成穿墙啊改数值方法:先打开金山游侠,再运行游戏,然后按*(默认是*,可以改)召出金山游侠,输入你要改的数值,会搜出好多,然后回到游戏,等到你所要改的数值改变后,再召出金山游侠,输入现在的数值,再在上一次搜索出的结果中搜索,依此类推,直至只剩一条数据时,就可以根究你的需要进行修改了。(这个游戏我没改过,如果能改就是这样改)
2023-08-06 00:28:225

在RMXP中改变窗口大小

送上脚本一个,美兽写的,不过建议不要修改,因为这样随之而来的是一连串的改动和不尽的烦恼。http://bbs.66rpg.com/forum.php?mod=viewthread&tid=65472&highlight=%E5%88%86%E8%BE%A8%E7%8E%87if $myfirst == nil $myfirst = "myGod" 宽度=800 高度=600 游戏ini名=".\Game.ini" val = ""*256 gps = Win32API.new("kernel32", "GetPrivateProfileString","pppplp", "l") gps.call("Game", "Title", "", val, 256, 游戏ini名) val.delete!("") title = val fw = Win32API.new("user32", "FindWindow", "pp", "i") hWnd = fw.call("RGSS Player", title) swp = Win32API.new("user32", "SetWindowPos", "lliiiii", "i") pointwds = [0,0,0,0].pack("llll") pointcet = [0, 0].pack("ll") wdsrect = Win32API.new("user32.dll", "GetWindowRect", "lp", "l") client_screen = Win32API.new("user32", "ClientToScreen", "ip", "i") wdsrect.call(hWnd,pointwds) client_screen.call(hWnd, pointcet) wds = pointwds.unpack("llll") cet = pointcet.unpack("ll") addw = wds[2] - wds[0] - 640 addh = wds[3] - wds[1] - 480 x = wds[0] - (宽度 - 640) / 2 y = wds[1] - (高度 - 480) / 2 swp.call(hWnd, 0, x, y, 宽度 + addw, 高度 + addh, 0x20) end
2023-08-06 00:28:431

RMXP 如何使用脚本创建窗口(Window) 如何在窗口中显示图片或文字 RPG Maker XP

窗口一般都是用super的吧!-------------------------------------------------------------------------------------------------------------------------------class Window_自己写 < Window_Base#-------------------------------------# initialize#------------------------------------- ---------------------------------- def initialize if $game_switches[自己选] #这个是当什么开关打开时,显示窗口 super(80, -10, 500, 500) #这个是位置和大小,前面两个是位置 #后面两个是大小 self.back_opacity = 自己调0-255 # self.opacity = 自己调0-255 #这里都是透明度, self.contents_opacity = 自己调0-255 # self.contents = Bitmap.new(width - 32, height - 32) #这个不管他,照搬 refresh #这个是刷新#另附:打开scene_map,找到@message_window = Window_Message.new这句话的下面打上@自己选 = Window_自己选.new然后再找@自己选_window.dispose再找 @message_window.update下面打上@自己选_window.update--------------------------------------------------------------------------------------当你自己开关打开后就会有窗口了--------------------------------------------------------------------------------------显示图片@自己选 = Sprite.new @自己选 .bitmap = RPG::Cache.picture(这里是picture文件夹中你要显示的图片) #print first picture @自己选.x =自己选 #这是图片x坐标 @自己选.y =自己选 #这是图片y坐标 @自己选.z =自己选 #这是图片的编号--------------------------------------------------------------------------------------显示文字self.contents.font.color = Color.new(255,80,46) self.contents.draw_text(24, 0, 104, 28, "自己弄")--------------------------------------------------------------------------------------差不多就是这样,我也是不久前学的,应该能帮到你.望采纳-_-
2023-08-06 00:28:521

求RPG maker xp 地图素材

你是想问自己下载的地图要放在哪里?地图素材有两种,那种纯地图的放到GraphicsTilesets里,墙体或者水体图放到GraphicsAutotiles..注意要用PNG格式的完毕后,打开RMXP,打开你要做游戏的那个游戏工程,点"工具"-"数据库"(或者点工具栏右边倒数第五个按钮)..然后再选择"图块",点击"更改最大值",改为51,然后你会发现黑暗空间这张地图下面多了一个空白的选项..点进去,选择"地图元件图形",找到你加入的刚刚加入的那张地图..一路确定就可以..到这里你就算是加了一张新地图了..不过还不够..你还得继续编辑..名称、自动元件、全景图形、雾图形、战斗背景图形这些都应该写下或者选择(名称就不用说拉,自动元件最好加上,主要是拿来做墙的,其他三个自选,建议加上)然后你会看到右边显示的地图里面有好多个圈圈,那就是你要改的..圆圈代表通行、叉代表不通行、正方形代表能够触摸但不能通行这里,第一行是圆圈、叉和正方形都有,设置是这样的:如果自动元件是水(比如瀑布啊湖泊等等),就设置成叉,如果是墙或者花草(比如下图第一行右边第三和第二个元件),就设置成正方形,如果是地砖或者草地等可以走路通行的,就设置成圆圈从第二行开始,就只有圆圈和叉了,道理同上,不应该通行的地方设置成叉,可以通行的地方设置成圆圈,如果是树或者是墙壁的话,只需要设置下方两行(见图)..不知道这样说你懂不懂,如果还不懂,设置的时候可以参考下系统自带的地图~ 你选什么啊?啥空白了?地图空白不能显示还是??..没说清楚我不知道怎么说诶...还有,有两个问题你要确认下首先,你的RTP有没有设置好,如果你将来要把游戏发给人家的,那你就要把RTP设置为(无),然后把素材放到游戏目录(是你制作的那个游戏的目录,不是RMXP的软件目录)里的Graphics和Audio对应的文件夹里..然后把RGSS103J.dll(或者RGSS101J.dll或者RGSS102J.dll,这三个的区别是对应的版本不同,分别对应RMXP1.01 RMXP1.02 RMXP1.03,你是哪个版本就要对应那个)虽然RMXP软件的目录里有这两个文件夹,但是如果你不把素材放到自己游戏的目录,即使你发给别人,他们也玩不了其次,如果你制作游戏的时候是直接从软件自带的RTP进行地图等等的制作,那么当你独立了RTP之后会变成空白,此时只要把你之前有制作过的素材复制到游戏目录对应的文件就可以了.. 与其说你不明白..不如说我也不明白你到底哪里不明白啊...都不知道你到底是不知道怎么新建一张新地图..还是你不知道怎么导入自己想要的地图...我留Q,你自己加我吧..502094587或者你直接用HI找我就可以.. 倒..你的地图元件都没有填当然是空白的...orz地图元件才是最重要的啊..地图元件就是你的地图素材..下面的自动地图元件就是那些什么花花草草之类的..至于远景图啊雾形图..并不需要一定填..战斗背景图的话如果这张图片有用到战斗就要添加..当然..如果你全部添加也可以..还有..注意我的图..你添加了地图元件之后可没完事..我说了..地图要设置(就是那些圈和叉..代表是否能通行)设置方法可以参考我的图..具体方法我在上面说了..什么怎么用..如果你已经设置好地图了..直接使用就行..如果是地图设置的..我在前面说过了... 唉…楼主…我真是对你无语了…既然你是从梦幻奇侠传提取的地图,就直接把图片放到GraphicsTilesets文件夹…新建地图的时候填好地图名称,在“地图元件”那里选择你刚放入的地图…至于水体和墙体(自动地图元件),你如果不需要的话就不用管了……通行方面我不想再说了…因为前面已经说的很清楚了…如果还是你不知道怎么设置通行,那么至少看下系统原来的地图是怎么设置的…另外,忘记说了,你可以看下梦幻的游戏是否有自带工程文件,如果有,你打开它工程文件里的数据库—图块,把里面的地图复制到你自己的工程文件就行了(但那些图片素材的名字不要改动)…还有那位女子同学…吵架不要在这吵…你要吵私下PM我我陪你吵…(当然…我想你不会这么无聊)(笑)满意请采纳。
2023-08-06 00:29:042

做RMXP游戏 请问在网络上保存的素材可以直接使用吗?是不是表明网站或者出处就可以了?????

不可以的,这个只是样板,要想直接使用,是不可以的,你可以下载后再看看能不能直接使用,楼主最近有个新游戏就很好玩,叫火源 计划,游戏中火种不会被清零真是太赞了,玩家在游戏中可以选择不同的职业,根据人物在成长要素上的分歧,每个玩家可以自由培养出属于自己的个性角色进行战斗。游戏中刷到有不同词缀属性的枪械、职业专精也需要通过角色人物的升级进行培养和解锁。
2023-08-06 00:29:191

RMXP RPG制作大师XP帮忙修改菜单页面栏的选项,只要物品和结束游戏。

18行起def main # 生成命令窗口 s1 = $data_system.words.item s2 = "结束游戏" @command_window = Window_Command.new(160, [s1, s2])120行起when 0 # 物品 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到物品画面 $scene = Scene_Item.new when 1 # 游戏结束 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到游戏结束画面 $scene = Scene_End.new看你上一个问题你大概应该知道加在哪里。
2023-08-06 00:29:571

RMXP RPG制作大师XP 请问如何设置菜单页面栏的选项(不要装备、技能等……)

只保留了存档和结束游戏 复制到Scene_Menu脚本就可以了。求分~#==============================================================================# ■ Scene_Menu#------------------------------------------------------------------------------#  处理菜单画面的类。#==============================================================================class Scene_Menu #-------------------------------------------------------------------------- # ● 初始化对像 # menu_index : 命令光标的初期位置 #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # ● 主处理 #-------------------------------------------------------------------------- def main # 生成命令窗口# s1 = $data_system.words.item #物品# s2 = $data_system.words.skill #魔法# s3 = $data_system.words.equip #装备# s4 = "状态" s5 = "存档" s6 = "结束游戏" @command_window = Window_Command.new(160, [s5,s6]) @command_window.index = @menu_index # 同伴人数为 0 的情况下 if $game_party.actors.size == 0 # 物品、特技、装备、状态无效化 @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end # 禁止存档的情况下 if $game_system.save_disabled # 存档无效 @command_window.disable_item(4) end # 生成状态窗口 # 生成游戏时间窗口# @playtime_window = Window_PlayTime.new# @playtime_window.x = 0# @playtime_window.y = 224 # 生成步数窗口# @steps_window = Window_Steps.new# @steps_window.x = 0# @steps_window.y = 320 # 生成金钱窗口# @gold_window = Window_Gold.new# @gold_window.x = 416# @gold_window.y = 0# @status_window = Window_MenuStatus.new# @status_window.x = 160# @status_window.y = 0 # 执行过渡 Graphics.transition # 主循环 loop do # 刷新游戏画面 Graphics.update # 刷新输入信息 Input.update # 刷新画面 update # 如果切换画面就中断循环 if $scene != self break end end # 准备过渡 Graphics.freeze # 释放窗口 @command_window.dispose# @playtime_window.dispose# @steps_window.dispose# @gold_window.dispose# @status_window.dispose end #-------------------------------------------------------------------------- # ● 刷新画面 #-------------------------------------------------------------------------- def update # 刷新窗口 @command_window.update# @playtime_window.update# @steps_window.update# @gold_window.update# @status_window.update # 命令窗口被激活的情况下: 调用 update_command if @command_window.active update_command return end # 状态窗口被激活的情况下: 调用 update_status if @status_window.active update_status return end end #-------------------------------------------------------------------------- # ● 刷新画面 (命令窗口被激活的情况下) #-------------------------------------------------------------------------- def update_command # 按下 B 键的情况下 if Input.trigger?(Input::B) # 演奏取消 SE $game_system.se_play($data_system.cancel_se) # 切换的地图画面 $scene = Scene_Map.new return end # 按下 C 键的情况下 if Input.trigger?(Input::C) # 同伴人数为 0、存档、游戏结束以外的场合 if $game_party.actors.size == 0 and @command_window.index < 4 # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return end # 命令窗口的光标位置分支 case @command_window.index# when 0 # 物品 # 演奏确定 SE# $game_system.se_play($data_system.decision_se) # 切换到物品画面# $scene = Scene_Item.new# when 1 # 特技 # 演奏确定 SE# $game_system.se_play($data_system.decision_se) # 激活状态窗口# @command_window.active = false# @status_window.active = true# @status_window.index = 0# when 2 # 装备 # 演奏确定 SE# $game_system.se_play($data_system.decision_se) # 激活状态窗口# @command_window.active = false# @status_window.active = true# @status_window.index = 0# when 3 # 状态 # 演奏确定 SE# $game_system.se_play($data_system.decision_se)# # 激活状态窗口# @command_window.active = false# @status_window.active = true# @status_window.index = 0 when 0 # 存档 # 禁止存档的情况下 if $game_system.save_disabled # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return end # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到存档画面 $scene = Scene_Save.new when 1 # 游戏结束 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到游戏结束画面 $scene = Scene_End.new end return end end #-------------------------------------------------------------------------- # ● 刷新画面 (状态窗口被激活的情况下) #-------------------------------------------------------------------------- def update_status # 按下 B 键的情况下 if Input.trigger?(Input::B) # 演奏取消 SE $game_system.se_play($data_system.cancel_se) # 激活命令窗口 @command_window.active = true @status_window.active = false @status_window.index = -1 return end # 按下 C 键的情况下 if Input.trigger?(Input::C) # 命令窗口的光标位置分支 case @command_window.index when 1 # 特技 # 本角色的行动限制在 2 以上的情况下 if $game_party.actors[@status_window.index].restriction >= 2 # 演奏冻结 SE $game_system.se_play($data_system.buzzer_se) return end # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到特技画面 $scene = Scene_Skill.new(@status_window.index) when 2 # 装备 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换的装备画面 $scene = Scene_Equip.new(@status_window.index) when 3 # 状态 # 演奏确定 SE $game_system.se_play($data_system.decision_se) # 切换到状态画面 $scene = Scene_Status.new(@status_window.index) end return end endend
2023-08-06 00:30:125

RMXP 游戏中 怎么做才能在游戏中替换带队角色

加个可以使用所有键的脚本,然后条件分歧,如果按下TAB键,角色1离队,然后再加入,现在的带队就是角色2了,加入是记得别初始化就好……以此类推,下一次就是角色2离队在加入,带队变成角色3,可以用开关实现……
2023-08-06 00:30:462

RMXP游戏文件夹里没有rgssad却打不开工程

这是一个加密文件,要解压先把rgssad解压,教程如下用http://zhidao.baidu.com/question/65628412.html或http://ishare.iask.sina.com.cn/f/9469885.html (推荐)解压,然后把这个rgssad文件放在Graphics文件夹里,就可以打开工程了我以前也遇到这样的问题,欢迎追问
2023-08-06 00:31:093

为什么我的青鬼游戏运行不了呢?

“没有发现RGSS-RTP Sdandard”,就请在文件夹里找到:Game.ini这个文件,双击打开,在:“RTP1=Standard”这个地方,把Standard去掉,然后保存,再进行游戏如果还不行建议重新下载安装一遍RMXP 。没有下载XP-RTP的情况下会提示你没有发现RGSS-RTPStandard的,所以你只要把下载的XP-RTP文件夹里的audio文件夹里的SE文件夹里的002-System02复制粘贴到青鬼游戏文件夹里audio的SE里面就OK了。程序缓存过多:在手机设置--应用程序--全部--找到出现停止运行的程序--清理数据;(大部分手机都可以通过此方法解决的)手机内存过低:系统运行程序多,内存不足,在设置—应用程序—正在运行,关闭其他后台运行程序安装位置不对。进入设置--储存--首选安装位置--由系统决定,更改储存位置。程序不兼容:建议卸载重新安装该程序或卸载了一些与系统不兼容的程序程序本身问题:有些程序本身存在问题,如前期腾讯组件出现问题,导致腾讯游戏出现停止运行的提示。
2023-08-06 00:31:231

RMXP脚本怎么设置图片跟随,就是黑暗中,主角有可视的视野,或者手电筒开视野之类的

你所说的图片跟随是不是说,“视野”随着角色而移动,角色始终在“视野”中央?这样的话,图片画好了以后,如此这般做:第一步:把视野遮罩的图片显示出来。第二步:启用一个开关,用来控制图片跟随角色的事件开启与否。第三步:启用一个公共事件,“目标”设置成并行处理,“条件开关”设置成那个开关。第四步:事件内容就是使图片一直跟随主角了,这里要用到【移动图片】的命令。先用2个变量分别代入角色的画面X坐标和画面Y坐标,这个功能在变量操作里有,自己找一下。执行【移动图片】,移动这个图片,坐标用这两个变量指定,“原点”设置成“中心”,时间设成1帧就行了。这样就能实现你要的功能了。视野的开启关闭就是这个开关的关闭与否,然后把那个图片显示或删除就可以了。
2023-08-06 00:31:502

RMXP游戏文件夹里没有rgssad文件 如何修改?

从一个其他的工程里面粘过rgssad(这时候虽然打开,不过角色数据会被刷新),然后重改呗= =
2023-08-06 00:32:031

请问RPG制作大师RMXP怎么修改人物在游戏中的移动速度?是玩家操作时的移动速度 不是事件自动移动 感谢

设置第二页的“设置移动路线”把目标改为主角,然后更改移动频度或者更改移动速度
2023-08-06 00:32:133

我的rmxp建立新工程师说文件夹复制失败,是怎么回事?

这不科学哦~一定是弄错了。建议检查一下是不是误删什么东西 或者留邮箱弄一个新的rm= begin百度 rmxp团队 贴吧恭候阁下光临。 = end
2023-08-06 00:32:274

RMXP设置只有触发了一个事件过后另一个事件才可以被触发

你好,问题【RMXP设置只有触发了一个事件过后另一个事件才可以被触发】可以用[开关],具体设置方法如下:===================================================================①在第一个事件中加入开关操作:打开事件菜单,第一面第二列第一行图例为:----------------------------------------------------------------------------------------------------------------------------②在想要触发的事件上设定:操作:事件左上角【事件出现条件】开关设定为【00×:×××】如例图:(和上面配套)这张图要设定的在这里↓----------------------------------------------------------------------------------------------------------------------------这样就可以达到问题所要的效果了===================================================================
2023-08-06 00:32:422

RMXP (RPGXP) 是基于什么语言编写的?

RMXP里面的脚本语言是Ruby,具体介绍可以看这http://baike.baidu.com/view/45135.htm另外,没听说要出RMVista的消息
2023-08-06 00:33:351

RMXP中RGSS文件夹在哪

⊙﹏⊙b汗………………= begin百度 rmxp团队 贴吧恭候阁下光临。 = end
2023-08-06 00:33:431

RMXP脚本 怎么将半身像放到状态栏里 代替行走图啊

脚本中全局搜索“STATUS”在“ def refresh”下面添加 bitmap = Bitmap.new("Graphics/battlers/#{@actor.character_name}") src_rect = Rect.new(0, 0, bitmap.width, bitmap.height) #图片大小 self.contents.blt(64, 24, bitmap, src_rect) #传送图片不懂就去 66rpg 主站上找教程。
2023-08-06 00:33:502

RMXP 重力脚本 如何实现在事件中暂时关闭该脚本?

那个脚本第一行少了$ud_ok = false加上之后可以在 事件-脚本 中写入$ud_ok = true 来关闭重力脚本$ud_ok = false 来打开重力脚本
2023-08-06 00:33:571

rpgmakerxp加密游戏解密方法

有些是隐藏了工程你可以调整到显示所有文件看一下..这样还不行..你看那有没有加密文件..没有的话你随便复制个工程打开文件到那里....如果你是想游戏改属性...而又有加密文件..你就先在你想解密的游戏存个档...在把挡移到可以打开工程的...游戏里...(建议自己开个工程)...你打开那个工程.会有缺少文件..你就随便搞素材个文件(要那个文件夹里的)..改成加密游戏的文件名.....在看一下他那个是第几张地图...然后再开个地图...制作事件..记得自动执行...在事件最后召换存档...召唤存档前面加调整人物属性的东西....可是不是那个人物就不知道..因为人物是第几个..不知道...存完后...把存档放到加密文件游戏的文件夹里..就行了....然后运行游戏..载入存档..还有...载入存档的脚本..不一样是不行的....这都是我玩了1年..RMXP游戏自己摸索的..正不正规不知道.....反正我只是想改属性...改成很厉害..懒的在加密游戏练级..所以才这样的...
2023-08-06 00:34:051

RMXP制作的游戏可以移植到安卓或IOS平台吗

目前不可以,但是rmmv可以
2023-08-06 00:34:121

求教V大的修改器怎么修改官位

首先你要确定那个游戏是用RMXP做的,且未加密。RMXP制作的游戏文件夹里一般会有RGSS103J.dll经过加密的游戏 文件夹里一般存在Game.rgssad如果都不存在,那这说明这游戏并非RMXP所制,也就不能用XP修改。ps:有RGSS200.dll和game.rgss2a请用RMVX,有RGSS300.dll和game.rgss3a请用RMVA。 ps2:存在Game.rvproj2、Game.rvproj、Game.rxproj文件 直接打开就好,有这玩意的游戏八成没加密。
2023-08-06 00:34:191

RMXP和RMVX功能上有什么大的区别么?有出版成书的教程么?

稍微懂一点编程是什么意思?两者的区分是:xp适合新手,不需要任何基础(但是上过初中数学吧,知道变量等概念)vx效率更高,也比xp增加了很多功能xp可以做出任何类型的游戏vx做出来的一般是风格活泼简明的rpg类建议选择xp,而且xp素材比vx多得多没有出书的教程,但是网上教程很多,www.66rpg.com,这是一个rm的专业网站,慢慢研究吧脚本一开始可以不用看,而且他语法也和其他语言不一样
2023-08-06 00:34:271

RMXP 读取脚本数据失败 怎样补救

新建一个data,把里面的东西挨个替换试试是哪个出现了问题你如果确认是脚本的问题,就重做脚本吧,把script.rxdata复制进你游戏里,保留其他东西还有 打开game.exe出现读取失败一般是内存不够
2023-08-06 00:34:344

我RMXP出问题了,运行游戏脚本错误,用工程打开说读取特技数据失败

脚本有问题。LZ是不是改过脚本或者多个脚本不兼容。你在脚本栏里面把默认脚本重新放回去,再一个一个地放直到出现问题。你说“用工程打开说读取特技数据失败”的话就是data的数据烂掉了,很可能是你家中病毒了,或者硬件超负荷运转出故障了。这种数据丢失是没法修复的
2023-08-06 00:34:423

RMXP做的Game.exe怎么脱离Game.ini运行

把RMXP程序里的Audio,Data,Graphics,拷到你的游戏路径里。如果你不觉得麻烦就把你用到的素材拷过来,这样就能不会这么大了。还有就是你用的如果是1.02版的话,就把RGSS102J.dll也拷进来,好像在WINDOWS的目录里,你搜索下就行。如果是1.03版就拷RGSS103J.dll。基本就这样。说得不清楚再M我。原则思想就是把你用过的素材从RM程序里拷到你的游戏里。
2023-08-06 00:35:011

各位大哥大姐求求你们告诉我一下怎样用RMXP做魔塔?我是新手,请多多指教。

第一章:术语详解 1.开关:相当于数学中的二进制,只有“开”和“关”两种选择。游戏一开始所有开关都是OFF的,玩魔塔时部分开关一开始就是开的,那是人为因素。(详见公共事件:初始化)制作工具中可以随意创建开关,并可以将其命名。(制作时最好写上具体名称,如:控制60层的门开的开关,可以叫:60层门开)工具中开关操作又称SWITCH,Playerdate_SWITCH = 1:当1号开关打开,本脚本才开始工作。$game_SWITCH[1]=ON:1号开关开启。 2.变量:变量是一个数据,它使用来储存数据的空位(数据可以使中文或英文或其他文本),同开关,变量也可以随便创建,变量的默认数值为0。以下使其中术语意思。 代入:把原数据变为所输入数据。 剩余:把原数据乘上一个百分数。 操作数中: 常用:就是直接输入的数。 变量:另一个变量的目前数据。 随机数:从A到B不等。(A:前面的空。B:后面的空。) 物品:就是一个物品你所拥有的数量。 角色:一个角色的某项值。 敌人:不必去管,魔塔样板涉及不到。 角色(下面的):同上面的角色意思。 其他:没什么可说的,自行选择吧。 大家注意到呢个统一了吗?就是几号到几号开关或变量都等于一个选项或一个数值,也就是统一操作。 3.图层:大致就是把画面分为三个层,一般地形放1层方快内有白色区域的一般为了美观都放第二层.在图层里,3层的东西会覆在2层上,2层会覆在1层上,样板图块中的数字就是个最好的例子,样板0层也有些在2或3层的地形 . 样板里有种特殊的情况,就是2层的地形都可以被破墙镐和地震卷轴破坏,并不一定得是墙,玩玩夏令营2的70余层就知道. 4.事件:如果说脚本编辑器是心脏,那么,事件就是肌肉.没有事件,就不能拿宝物,对话,战斗............ 事件栏的最上方有个"ID:XXX",这个是自动生成的,表示这个地图中他是第几个事件,事件ID必须连续,规格为三位数,不够三位就拿0占位(非常重要!编辑新楼层和怪物事件编号必须要这样~!) 每层的事件ID一旦不连续,就会引起脚本错误,打个比方:事件ID不连续就像1户人家有3个孩子,被称为老大老二老四,这怎么行? 以上情况通常出现在中途删除部分事件上. 5.显示文章: $game_temp.message_text= "" 显示引号中的文章。 更改文章选项: $game_system.message_position =0,1,2 表示上、中、下,三个位置 $game_system.message_frame = 0 ,1 0表示不透明,其他的话就透明 等待: @wait_count = X 等待X帧 中断事件处理: command_end 把某一个事件暂时消除 $game_map.events[X].erase 其中X表示把X号事件暂时消除,如果是消除本事件X = @event_id 执行公共事件: $game_temp.common_event_id = 编号 执行编号的公共事件。注意,这个执行和直接在事件中的公共事件有微妙区别。 开关操作: $game_switches[编号] = true / false true是打开,false是关闭 变量操作: $game_variables[编号] = 数值 这里有一些常用的内容: rand(100):返回0-99的随机数 rand(100)+10000:返回10000-10099的随机数 $game_party.item_number(编号):编号物品的个数 角色相关:以下为某编号的角色的相关属性 生命:$game_actors[编号].hp 精神:$game_actors[编号].sp 经验:$game_actors[编号].exp 等级:$game_actors[编号].level 最大生命:$game_actors[编号].maxhp 最大精神:$game_actors[编号].maxsp 力量:$game_actors[编号].str 灵巧:$game_actors[编号].dex 速度:$game_actors[编号].agi 魔力:$game_actors[编号].int 攻击力:$game_actors[编号].atk 物理防御:$game_actors[编号].pdef 魔法防御:$game_actors[编号].mdef 回避修正:$game_actors[编号].eva 姓名:$game_actors[编号].name 职业编号:$game_actors[编号].class_id 职业名称:$game_actors[编号].class_name 武器编号:$game_actors[编号].weapon_id 防具1编号:$game_actors[编号].armor1_id 防具2编号:$game_actors[编号].armor2_id 防具3编号:$game_actors[编号].armor3_id 防具4编号:$game_actors[编号].armor4_id 完全回复:$game_actors[编号].recover_all 领悟特技:$game_actors[编号].learn_skill(编号) 遗忘特技:$game_actors[编号].forget_skill(编号) 位置(前卫返回0,中卫返回1,后卫返回2):$data_classes[$game_actors[编号].class_id].position 学会特技总数:$game_actors[编号].skills.size 敌人:$game_troop.enemies[编号] 敌人拥有角色的部分功能,包括.hp,.sp,.maxhp,.maxsp,.str,.dex,.agi,.int,.atk,.pdef,.mdef,.eva 地图的事件属性: $game_map.events[编号].x,$game_map.events[编号].y 编号事件的x,y坐标 $game_map.events[编号].screen_x,$game_map.events[编号].screen_y 编号事件的屏幕x,y坐标 $game_map.events[编号].direction 编号事件的朝向 $game_map.events[编号].terrain_tag 编号事件所处的地形标志 $game_map.events[编号].moveto(x,y) 把事件扔到(x,y) ——————————————————以上几个事件的,如果要求为角色,则为“$game_player.x”等 地图ID:$game_map.map_id 同伴总人数:$game_party.actors.size 步数:$game_party.steps 金钱:$game_party.gold 游戏总时间(秒数):Graphics.frame_count / Graphics.frame_rate 游戏总帧数:Graphics.frame_count 游戏帧速率(可直接=n调整):Graphics.frame_rate 计时器剩余秒数:$game_system.timer / Graphics.frame_rate 存档次数:$game_system.save_count 独立开关操作: $game_self_switches[[地图编号,事件编号,"A"]] = true/false 把地图编号的地图上的事件编号的事件的A开关打开。其实不光ABCD,还可以建立更多独立开关,不过调用也得用同样脚本。 计时器打开: $game_system.timer = 需要的秒数;$game_system.timer_working = true 计时器关闭: $game_system.timer_working = false 增减金钱: $game_party.gain_gold(金钱量) 增减物品: $game_party.gain_item(物品编号,数量) 举例: $game_party.gain_item(rand(10),rand(10)):随机获得0-9号中某一物品,数量为0-9随机。 增减武器: $game_party.gain_weapon(物品编号,数量) 增减防具: $game_party.gain_armor(物品编号,数量) 清空现有所有物品: $game_party.items.clear 清空所有武器: $game_party.weapons.clear 清空所有防具: $game_party.armors.clear 角色替换: 加入角色:$game_party.add_actor(编号) 删除角色:$game_party.remove_actor(编号) 初始化角色:$game_party[编号].setup(编号) 更改窗口外观: $game_system.windowskin_name = 文件名 更改禁止存档 $game_system.save_disabled = true/false 更改禁止菜单: $game_system.menu_disabled = true/false 更改禁止遇敌: $game_system.encounter_disabled = true/false 地图卷动: $game_map.start_scroll(方向,距离,速度) 地图某角色显示动画: $game_map.events[id].animation_id = 动画编号 角色透明: $game_player.transparent = true/false 等待移动结束: @move_route_waiting = true 开始更改色调: $game_screen.start_tone_change(Tone.new(R,G,B,A),帧数) 画面闪烁: $game_screen.start_flash(Color.new(R,G,B,A),帧数) 画面振动: $game_screen.start_shake(力度,速度,帧数) 显示图片: $game_screen.pictures[number].show(name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) 移动图片: $game_screen.pictures[number].move(duration, origin, x, y, zoom_x, zoom_y, opacity, blend_type) 其中: # name : 文件名 # origin : 原点 # x : X 坐标 # y : Y 坐标 # zoom_x : X 方向放大率 # zoom_y : Y 方向放大率 # opacity : 不透明度 # blend_type : 合成方式 # duration : 时间 旋转图片: $game_screen.pictures[number].rotate(速度) 删除图片: $game_screen.pictures[number].erase 显示动画(战斗中) battler.animation_id = 动画编号 battler可以是敌人或者自己人,请先定义。 显示伤害: battler.damage = 伤害值 battler.damage_pop = true 注意,这个显示伤害可以让伤害值为字符串!并不会真的减血,减血用battler.hp -= 数值 battler.criticle = true 这个还可以打开会心一击标志 战斗中断: $game_temp.battle_abort = true 调用菜单: $game_temp.menu_calling = true 调用存档画面: $game_temp.save_calling = true 游戏结束: $game_temp.gameover = true 返回标题画面: $game_temp.to_title = true 强行启动事件: $game_map.events[编号].start 通行判定: $game_player.passable?(x,y,方向) 用来判断地图某处是否在某个方向可通行 正在移动判定: $game_player.moving? $game_map.events[编号].moving? 播放效果: Audio.bgm_play("文件名",音量,节奏速度) Audio.bgs_play("文件名",音量,节奏速度) Audio.me_play("文件名",音量,节奏速度) Audio.se_play("文件名",音量,节奏速度) 播放bgm,bgs,me,se Audio.bgm_stop Audio.bgs_stop Audio.me_stop Audio.se_stop 停止播放bgm,bgs,me,se $game_system.playing_bgm,$game_system.playing_bgs 获得演奏中的bgm,bgs game_system.bgm_memorize,game_system.bgm_restore game_system.bgs_memorize,game_system.bgs_restore 记忆、还原bgm,bgs 判断某角色在队伍中:$game_party.actors.include?($game_actors[编号]) 判断是否学过某特技:$game_actors[编号].skill_learn?(特技编号) 以上选自66RPG,是比较重要的,新手最好记记,这样以后学习脚本会轻松些 变量,开关和事件都是基本功,一定要熟知这些,了解其中的原理. 第二章.怪物 1.能力:打开工具栏-数据库-敌人,就可以对怪物进行编辑了. 名字:........... MAXSP:原本是法术值,可样板用不找,不用管他了(不是最新样板的请参考其他怪物的) MAXHP:就是生命的意思啦! 力量:攻击 灵巧:防御 魔法防御:领域怪物的控制范围由这项能力决定 金币:........... EXP:经验(如果每个怪都是1的话,建议把角色状态栏里的"经验"从脚本编辑器里改为杀怪数) 其他的就不用管了. 怪物中有特殊能力,可以查看. 数值 属性 说明 0 普通 1 中毒 战斗后,角色每行动一格,减生命10点(变量25决定) 2 衰弱 战斗后,角色攻防衰减为正常的75%(变量52决定) 4 吸血 战斗前,怪物首先吸取角色34%的生命加到自身(变量53决定) 8 坚固 怪物的防御至少等于角色攻击-1(变量54决定) 16 先攻 战斗时,怪物首先攻击1次(变量55决定) 32 迟缓 战斗后,勇士行走速度降低到3.3(变量56决定,正常4.3) 64 魔攻 战斗时,怪物的攻击无视角色的防御*1(变量57决定) 128 连击 战斗时,怪物每回合攻击2次(数据库敌人回避修正决定) 256 领域 经过怪物周围Y格时自动减生命X点(X由数据库敌人maxsp决定,Y由数据库敌人魔法防御决定,0为十字领域范围) 512 爆击 战斗前,怪物附加角色防御的X点作为伤害(X等于角色防御的90%,变量58决定百分比) 1024 潜伏 角色看不到怪物,除非拥有物品40-探知器并距离怪物x格(变量79决定物品id,变量84决定x的大小) 2048 无敌 角色无法击败怪物,除非拥有物品10-圣十字架(变量71决定) 4096 模仿 怪物的攻防等于角色的攻防*1(变量60决定) 8192 诅咒 战斗后,角色再次战斗无法获得金币经验,本次可以获得 9900 反弹 战斗时,怪物附加角色攻击的10%作为伤害(变量70决定) 9910 重生 怪物被击败后,角色转换楼层则怪物再次出现 9920 净化 战斗前,怪物附加勇士魔防的3倍作为伤害(变量104决定) 9930 神偷 战斗后,勇士所持的4种血瓶数量减半 以上属性中提到的数值不是最新样板的在MAXSP里输入,是最新样板的在怪物名字后面加":"再加数值(多重属性就是:N:N)N的意思:数值. 2.编辑:很简单,把事件的名称改为怪物XXX(这里要用到那个1章,4节说哪个规则了)(加上"BOSS"就无法被炸弹和圣锤消灭了.),在设置区域,公共时间-战斗,在固定朝向和停止时动画上打勾,在与事件接触(也可以与主角接触)打勾,就OK了!~ 攻防超过999用$game_enemies[怪物编号].某项能力=XXX(如果是名字,要把XXX拿双引号引上) 第三章.物品 1.普通物品 如何设图什么的我就不说了。 这类物品一般是不能使用的。 2.特殊物品 像楼层传送器,破墙镐都属于,具体如何制作见公共事件的使用物品处理。 做可以使用的物品也要选个公共事件(自己创建也行)。 具体的自己做吧,这时要研究下脚本编辑器,学点语言,对做物品很有帮助
2023-08-06 00:35:082