查看: 2345|回复: 5

【已解决】对于ARPG的技能范围理解

[复制链接]
奖 200 星屑 回复本帖可获得 20 星屑奖励! 每人限 10 次
梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
发表于 2022-9-22 14:59:19 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 金芒芒 于 2023-5-30 17:02 编辑

[pre lang="ruby"]class Game_Event
  def return_erased2
    return @erased2
  end
  def erase2
    @erased2 = true
  end
end
class ARPG
  def skill
    return @skill
  end
end
#==============================================================================
$wait_H = 0
$wait_H2 = 0
$普通攻击动画ID = 0
#==============================================================================
class Scene_Map
alias update_olc update
def update
update_olc
@ppp = $game_party.actors[0]
#--------------------------------------------------------------------------
# ● 敌人攻击
#--------------------------------------------------------------------------
  for enemy in $game_map.events.values
    next if enemy.return_erased2
    next if enemy.list == nil
    next if enemy.list[0].code != 108
    next if enemy.list[1].parameters[0] != "敌人"
#敌人的攻击力:
@enemy_attack = enemy.list[6].parameters[0].to_i
@enemy_animation = enemy.list[9].parameters[0].to_i
#敌人面向下,攻击角色
$wait_H += 0.1
if $game_player.x == enemy.x and $game_player.y - enemy.y == 1 and enemy.direction == 2
if $wait_H >= 200
  case rand(40)
  when 2
  enemy.animation_id = @enemy_animation
if @ppp.pdef >= @enemy_attack     #当敌人攻击少于角色防御
   $game_switches[31] = true      #显示MISS
   $game_player.damage_pop = true
   Mess_Text.write ("#{@ppp.name}没有受到伤害。")
   $wait_H += 0
   else
    $game_player.damage = @enemy_attack - @ppp.pdef
    $game_player.damage_pop = true
    @ppp.hp -= $game_player.damage
    Mess_Text.write ("#{@ppp.name}受到#{$game_player.damage.to_i}点伤害。")
   $wait_H += 0
end #if
end #if
end #case
end #if
#敌人面向左,攻击角色
if $game_player.x - enemy.x == -1 and $game_player.y == enemy.y and enemy.direction == 4
if $wait_H >= 200
  case rand(40)
  when 2
  enemy.animation_id = @enemy_animation + 1
if @ppp.pdef >= @enemy_attack     #当敌人攻击少于角色防御
   $game_switches[31] = true      #显示MISS
   $game_player.damage_pop = true
   Mess_Text.write ("#{@ppp.name}没有受到伤害。")
   $wait_H += 0
   else
    $game_player.damage = @enemy_attack - @ppp.pdef
    $game_player.damage_pop = true
    @ppp.hp -= $game_player.damage
    Mess_Text.write ("#{@ppp.name}受到#{$game_player.damage.to_i}点伤害。")
    $wait_H += 0
end #if
end #if
end #case
end #if
#敌人面向右,攻击角色
if $game_player.x - enemy.x == 1 and $game_player.y == enemy.y and enemy.direction == 6
if $wait_H >= 200
  case rand(40)
  when 2
  enemy.animation_id = @enemy_animation + 2
if @ppp.pdef >= @enemy_attack     #当敌人攻击少于角色防御
   $game_switches[31] = true      #显示MISS
   $game_player.damage_pop = true
   Mess_Text.write ("#{@ppp.name}没有受到伤害。")
   $wait_H += 0
   else
    $game_player.damage = @enemy_attack - @ppp.pdef
    $game_player.damage_pop = true
    @ppp.hp -= $game_player.damage
    Mess_Text.write ("#{@ppp.name}受到#{$game_player.damage.to_i}点伤害。")
    $wait_H += 0
end #if
end #if
end #case
end #if
#敌人面向上,攻击角色
if $game_player.x == enemy.x and $game_player.y - enemy.y == -1 and enemy.direction == 8
if $wait_H >= 200
  case rand(40)
  when 2
  enemy.animation_id = @enemy_animation + 3
if @ppp.pdef >= @enemy_attack     #当敌人攻击少于角色防御
   $game_switches[31] = true      #显示MISS
   $game_player.damage_pop = true
   Mess_Text.write ("#{@ppp.name}没有受到伤害。")
   $wait_H += 0
   else
    $game_player.damage = @enemy_attack - @ppp.pdef
    $game_player.damage_pop = true
    @ppp.hp -= $game_player.damage
    Mess_Text.write ("#{@ppp.name}受到#{$game_player.damage.to_i}点伤害。")
    $wait_H += 0
end #if
end #if
end #case
end #if
#★★★★
end#for★
#--------------------------------------------------------------------------
# ● 定义旋舞斩
#--------------------------------------------------------------------------
def skill_旋舞斩
  for enemy in $game_map.events.values
    next if enemy.return_erased2
    next if enemy.list == nil
    next if enemy.list[0].code != 108
    next if enemy.list[1].parameters[0] != "敌人"
px = $game_player.x
py = $game_player.y
if (px - enemy.x).abs <= 2 and (py - enemy.y).abs <= 1
case rand(10)  
when 0..8
      enemy.damage = $data_skills[@skill.id].power
      enemy.damage_pop = true
case $game_player.direction
    when 2
    enemy.jump(0, 1)
    when 4
    enemy.jump(-1, 0)
    when 6
    enemy.jump(1, 0)
    when 8
    enemy.jump(0, -1)
    end
when 9
      enemy.damage = $data_skills[@skill.id].power*2
      enemy.damage_pop = true
      enemy.critical = true
case $game_player.direction
    when 2
    enemy.jump(0, 1)
    when 4
    enemy.jump(-1, 0)
    when 6
    enemy.jump(1, 0)
    when 8
    enemy.jump(0, -1)
    end
    end
Mess_Text.write ("#{enemy.list[2].parameters[0]}受到#{enemy.damage.to_i}伤害。")
      end #伤害范围
    end #定义event
end #旋舞斩技能[/pre]

八个方向

八个方向

技能范围扩大

技能范围扩大
梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2022-9-22 20:22:23 | 显示全部楼层
243行就是范围
回复 1 0

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2022-9-22 15:01:56 | 显示全部楼层
本帖最后由 金芒芒 于 2022-9-22 15:42 编辑

那么技能范围是否可以扩张到when0..25呢。rand的数量也要增加吗   .enemy.jump(0, 1)是敌人上面吗
回复

使用道具 举报

梦石
2
星屑
13779
在线时间
2319 小时
注册时间
2011-6-4
回帖
586
发表于 2022-9-22 19:31:48 | 显示全部楼层

回帖奖励 +10 星屑

这是你自己写的arpg系统,还是用的别人的,只从中截一小段出来很难读懂啊。
BUG反馈请加QQ 529283039
水友群 917854767

回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2022-9-22 21:36:40 | 显示全部楼层
本帖最后由 金芒芒 于 2022-9-22 21:38 编辑


太帅了小姐姐开到9满屏的尸体
回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-5-30 17:03:05 | 显示全部楼层
真·可乐 发表于 2022-9-22 19:31
这是你自己写的arpg系统,还是用的别人的,只从中截一小段出来很难读懂啊。 ...

别人写的抄过来的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部