设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 5842|回复: 13
打印 上一主题 下一主题

[原创发布] 【XP】不怎么影响原有功能的像素移动。

[复制链接]

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42404
在线时间
7602 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

跳转到指定楼层
1
发表于 2011-10-1 11:51:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 fux2 于 2011-10-1 11:55 编辑

脚本有点蛋疼就不发了,直接上工程,然后像素移动什么的截图也看不出来= =图也不发了。
然后,8方向不适用,只写了4个方向的.
像素移动.rar (189.6 KB, 下载次数: 2072)

评分

参与人数 2星屑 +96 收起 理由
MeowSnow + 66 流石超能黄鸡
px.凤翔九天 + 30 好有爱的像素移动~

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托

Lv2.观梦者

(?????)

梦石
0
星屑
728
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

2
发表于 2011-10-1 12:56:39 | 只看该作者
转角的地方是为了手感做优化么……
但是范围太过宽泛了吧……

这样当想要启动距离主角斜四方向一格的事件会有困难 =v= b

 ◆
↑就是这种位置关系啦 =W= 当然也不是非常困难就是了 手感问题

最好加个开关或者直接判断当主角移动速度较低时再使用(可以广泛用在某些地方的特效啊)

但是步数为0的话某些特殊情况会很麻烦吧 =3= 虽然这个鸡肋的功能用的不多就是了

地形标志测试通过 =w= 坐标获取到的是小数……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1185
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

3
发表于 2011-10-1 13:22:15 | 只看该作者
整体测试手感不错,XAS4本来是使用像素移动的,可是作者一直坑着……

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42404
在线时间
7602 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

4
 楼主| 发表于 2011-10-1 14:12:39 | 只看该作者
各种压力的猫君 发表于 2011-10-1 12:56
转角的地方是为了手感做优化么……
但是范围太过宽泛了吧……

错位也可以触发事件.

点评

我是说从侧面走过去,想要转向NPC并触发事件,有可能会滑到一边去 = =  发表于 2011-10-1 14:15
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2011-8-15
帖子
44
5
发表于 2011-10-1 14:21:33 | 只看该作者
DeathKing 发表于 2011-10-1 13:22
整体测试手感不错,XAS4本来是使用像素移动的,可是作者一直坑着……

XAS本身就是比较复杂的一个系统了,再加入像素移动的话之前很多东西都要修改吧。
多浩大的工程,很期待.

评分

参与人数 1星屑 +20 收起 理由
各种压力的猫君 + 20 >V< 小黄鸡~~摸摸~

查看全部评分

0v0
回复 支持 反对

使用道具 举报

Lv2.观梦者

(?????)

梦石
0
星屑
728
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

6
发表于 2011-10-11 15:49:32 | 只看该作者
突然想到的,能不能加入一个“移动到最邻近格子”的方法?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
211
在线时间
905 小时
注册时间
2010-9-6
帖子
3229
7
发表于 2011-10-24 23:47:30 | 只看该作者
鄙人表示,下载不完整……

点评

附件傲娇很正常,多下载几次  发表于 2011-10-25 01:01
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

8
发表于 2017-2-19 21:18:29 | 只看该作者
我试了一下。普通用还好。就是一些要修改移动速度之类的会出错。还会跑到地图外面去不见了。

点评

我经过修改后,用到了XAS里,暂时没出错。  发表于 2017-7-7 17:12
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
831
在线时间
584 小时
注册时间
2012-6-3
帖子
366
9
发表于 2017-2-21 15:05:17 | 只看该作者
这么就没来,一堆大神出来了
小白狐一只~
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

10
发表于 2017-7-27 15:42:35 | 只看该作者
本帖最后由 yang1zhi 于 2017-7-27 22:50 编辑

这个脚本最大的缺点是。
移动速度很快的时候。会穿越不能穿越的图块。甚至地图外面。
      speed1 = (2**@move_speed).to_f/128
      speed2 = speed1 - speed1.to_i
      speed = speed1.to_i
      for i in 0..speed1.to_i*2
        if i == 0
          speed = speed2
        else
          speed = 0.5
          end


我贴上我做的修改
RUBY 代码复制
  1. class Game_Character
  2.   alias:md:move_down
  3.   def move_down(turn_enabled = true,bot=true)
  4.   kz = [0,0]
  5.         #不能移动的情况
  6.         if defined? self.battler.agi == nil
  7.     #解除逃跑
  8.     self.battler.remove_state(29)
  9.          # 睡眠
  10.          return  if self.battler.states.include?(90)
  11.          #害怕
  12.          return  if self.battler.states.include?(91)
  13.          #待命
  14.          return  if self.battler.states.include?(6)
  15.     return  if $game_temp.cast_time > 0 and self.is_a?(Game_Player)
  16.     return   if @cold_countsf > 0
  17.     #大型尺寸移动接触
  18.     if XAS_BA_ENEMY::BODY_SQUARE.include?(self.battler.id) and
  19.      not XAS_BA_ENEMY::BODY_SQUARE_QH.include?(self.battler.id)
  20.     kz = [-XAS_BA_ENEMY::BODY_SQUARE[self.battler.id],XAS_BA_ENEMY::BODY_SQUARE[self.battler.id]]
  21.   end
  22.   end
  23.     unless bot
  24.       speed1 = (2**@move_speed).to_f/128
  25.       speed2 = speed1 - speed1.to_i
  26.       speed = speed1.to_i
  27.       for i in 0..speed1.to_i*2
  28.         if i == 0
  29.           speed = speed2
  30.         else
  31.           speed = 0.5
  32.           end
  33.  
  34.       if passable?(@x.to_i, (@y+speed).to_i, 2)
  35.         if @x.to_i != @x
  36.  
  37.           tongxing = true
  38.           for i in kz
  39.             next unless $game_map.valid?((@x+0.9+i).to_i, (@y+speed).to_i)
  40.             unless passable?((@x+0.9+i).to_i,(@y+speed).to_i, 2)
  41.               tongxing = false
  42.             end
  43.           end
  44.           if $game_map.valid?((@x+0.9).to_i, (@y+speed).to_i)
  45.           unless passable?((@x+0.9).to_i,(@y+speed).to_i, 2)
  46.               tongxing = false
  47.             end
  48.             end
  49.           if tongxing == true
  50.             turn_down if turn_enabled
  51.             @y += speed
  52.  
  53.      #     if passable?((@x+0.9).to_i,(@y+speed).to_i, 2)
  54.           else
  55.             if passable?((@x-0.1).to_i,(@y+speed).to_i, 2)
  56.         #    unless check_event_trigger_touch(@x.to_i+1, (@y+speed).to_i+1)
  57.               @y = (@y+speed).to_i
  58.               @x -= speed
  59.               turn_down if turn_enabled
  60.             else
  61.               turn_down if turn_enabled
  62.             end
  63.           end
  64.         else
  65.  
  66.             tongxing = true
  67.           for i in kz
  68.              next unless $game_map.valid?((@x+0.9+i).to_i, (@y+speed).to_i)
  69.             unless passable?((@x+0.9+i).to_i,(@y+speed).to_i, 2)
  70.               tongxing = false
  71.             end
  72.           end
  73.           if $game_map.valid?((@x+0.9).to_i, (@y+speed).to_i)
  74.           unless passable?((@x+0.9).to_i,(@y+speed).to_i, 2)
  75.               tongxing = false
  76.             end
  77.             end
  78.           if tongxing == true
  79.           turn_down if turn_enabled
  80.           @y += speed
  81.         end
  82.         end
  83.       else
  84.      #   if passable?((@x+0.9).to_i,(@y+speed).to_i, 2)
  85.      if passable?((@x+1).to_i,(@y+speed).to_i, 2)
  86.      #     unless check_event_trigger_touch(@x.to_i, (@y+speed).to_i+1)
  87.             @y = (@y+speed).to_i
  88.             @x += speed
  89.             turn_down if turn_enabled
  90.       #    else
  91.       #      turn_down if turn_enabled
  92.       #      @y = (@y+speed).to_i
  93.        #   end
  94.         else
  95.           turn_down if turn_enabled
  96.           @y = (@y+speed).to_i
  97.           check_event_trigger_touch(@x.to_i, @y.to_i+1)
  98.         end
  99.       end
  100.       end
  101.     else
  102.       md(turn_enabled)
  103.     end
  104.   end
  105.  
  106.   alias:ml:move_left
  107.   def move_left(turn_enabled = true,bot=true)
  108.   kz = [0,0]
  109.         #不能移动的情况
  110.         if defined? self.battler.agi == nil
  111.     #解除逃跑
  112.     self.battler.remove_state(29)
  113.          # 睡眠
  114.          return  if self.battler.states.include?(90)
  115.          #害怕
  116.          return  if self.battler.states.include?(91)
  117.          #待命
  118.          return  if self.battler.states.include?(6)
  119.     return  if $game_temp.cast_time > 0 and self.is_a?(Game_Player)
  120.     return   if @cold_countsf > 0
  121.     #大型尺寸移动接触
  122.     if XAS_BA_ENEMY::BODY_SQUARE.include?(self.battler.id) and
  123.      not XAS_BA_ENEMY::BODY_SQUARE_QH.include?(self.battler.id)
  124.     kz = [-XAS_BA_ENEMY::BODY_SQUARE[self.battler.id]*0.9,XAS_BA_ENEMY::BODY_SQUARE[self.battler.id]*0.9]
  125.   end
  126.   end
  127.  
  128.     unless bot
  129.       speed1 = (2**@move_speed).to_f/128
  130.       speed2 = speed1 - speed1.to_i
  131.       speed = speed1.to_i
  132.       for i in 0..speed1.to_i
  133.         if i == 0
  134.           speed = speed2
  135.         else
  136.           speed = 0.5
  137.           end
  138.  
  139.       if passable?((@x-speed+0.9).to_i,@y.to_i, 4)
  140.         if @y.to_i != @y
  141.           tongxing = true
  142.           if $game_map.valid?((@x-speed+0.9-kz[0].abs).to_i,(@y+0.9).to_i)
  143.           unless passable?((@x-speed+0.9-kz[0].abs).to_i,(@y+0.9).to_i, 4)
  144.               tongxing = false
  145.             end
  146.             end
  147.           if $game_map.valid?((@x-speed+0.9-kz[0].abs).to_i,(@y+0.9-kz[0].abs).to_i)
  148.           unless passable?((@x-speed+0.9-kz[0].abs).to_i,(@y+0.9-kz[0].abs).to_i, 4)
  149.               tongxing = false
  150.             end
  151.             end
  152.           if tongxing == true
  153.  
  154.   #        if passable?((@x-speed+0.9).to_i,(@y+0.9).to_i, 4)
  155.             turn_left if turn_enabled
  156.             @x -= speed
  157.           else
  158.             if passable?((@x-speed+0.9).to_i,(@y-0.1).to_i, 4)
  159.         #    unless check_event_trigger_touch(@x.to_i-1, @y.to_i+1)
  160.               @x = @x.to_i
  161.               @y -= speed
  162.               turn_left if turn_enabled
  163.             else
  164.               turn_left if turn_enabled
  165.             end
  166.           end
  167.         else
  168.           tongxing = true
  169.           if $game_map.valid?((@x-speed+0.9-kz[0].abs).to_i,(@y+0.9).to_i)
  170.           unless passable?((@x-speed+0.9-kz[0].abs).to_i,(@y+0.9).to_i, 4)
  171.               tongxing = false
  172.             end
  173.             end
  174.           if $game_map.valid?((@x-speed+0.9-kz[0].abs).to_i,(@y+0.9-kz[0].abs).to_i)
  175.           unless passable?((@x-speed+0.9-kz[0].abs).to_i,(@y+0.9-kz[0].abs).to_i, 4)
  176.               tongxing = false
  177.             end
  178.             end
  179.           if tongxing == true
  180.  
  181.           turn_left if turn_enabled
  182.           @x -= speed
  183.         else
  184.           @x = @x.to_i
  185.         end
  186.         end
  187.       else
  188.       #  if passable?((@x-speed+0.9).to_i,(@y+0.9).to_i, 4)
  189.        if passable?((@x-speed+0.9).to_i,(@y+1).to_i, 4)
  190.      #     unless check_event_trigger_touch(@x.to_i-1, @y.to_i)
  191.             @x = @x.to_i
  192.             @y += speed
  193.             turn_left if turn_enabled
  194.      #     else
  195.       #      turn_left if turn_enabled
  196.       #      @x = @x.to_i
  197.      #     end
  198.         else
  199.           turn_left if turn_enabled
  200.           @x = @x.to_i
  201.           check_event_trigger_touch(@x.to_i-1, @y.to_i)
  202.         end
  203.       end
  204.       end
  205.     else
  206.       ml(turn_enabled)
  207.     end
  208.   end
  209.  
  210.   alias:mr:move_right
  211.   def move_right(turn_enabled = true,bot=true)
  212.   kz = [0,0]
  213.         #不能移动的情况
  214.         if defined? self.battler.agi == nil
  215.     #解除逃跑
  216.     self.battler.remove_state(29)
  217.          # 睡眠
  218.          return  if self.battler.states.include?(90)
  219.          #害怕
  220.          return  if self.battler.states.include?(91)
  221.          #待命
  222.          return  if self.battler.states.include?(6)
  223.     return  if $game_temp.cast_time > 0 and self.is_a?(Game_Player)
  224.     return   if @cold_countsf > 0
  225.     #大型尺寸移动接触
  226.     if XAS_BA_ENEMY::BODY_SQUARE.include?(self.battler.id) and
  227.      not XAS_BA_ENEMY::BODY_SQUARE_QH.include?(self.battler.id)
  228.     kz = [-XAS_BA_ENEMY::BODY_SQUARE[self.battler.id]*0.9,XAS_BA_ENEMY::BODY_SQUARE[self.battler.id]*0.9]
  229.   end
  230.   end
  231.  
  232.     unless bot
  233.       speed1 = (2**@move_speed).to_f/128
  234.       speed2 = speed1 - speed1.to_i
  235.       speed = speed1.to_i
  236.       for i in 0..speed1.to_i
  237.         if i == 0
  238.           speed = speed2
  239.         else
  240.           speed = 0.5
  241.           end
  242.  
  243.       if passable?((@x+speed).to_i,@y.to_i, 6)
  244.         if @y.to_i != @y
  245.  
  246.           tongxing = true
  247.           if $game_map.valid?((@x+speed+kz[0].abs).to_i,(@y+0.9).to_i)
  248.           unless passable?((@x+speed+kz[0].abs).to_i,(@y+0.9).to_i, 6)
  249.               tongxing = false
  250.             end
  251.             end
  252.           if $game_map.valid?((@x+speed+kz[0].abs).to_i,(@y+0.9-kz[0].abs).to_i)
  253.           unless passable?((@x+speed+kz[0].abs).to_i,(@y+0.9-kz[0].abs).to_i, 6)
  254.               tongxing = false
  255.             end
  256.             end
  257.           if tongxing == true
  258.  
  259.       #    if passable?((@x+speed).to_i,(@y+0.9).to_i, 6)
  260.             turn_right if turn_enabled
  261.             @x += speed
  262.           else
  263.            if passable?((@x+speed).to_i,(@y-0.1).to_i, 6)
  264.        #     unless check_event_trigger_touch((@x+speed).to_i+1, @y.to_i+1)
  265.               @x = (@x+speed).to_i
  266.               @y -= speed
  267.               turn_right if turn_enabled
  268.             else
  269.               @x = (@x+speed).to_i
  270.               turn_right if turn_enabled
  271.             end
  272.           end
  273.         else
  274.  
  275.           tongxing = true
  276.           if $game_map.valid?((@x+speed+kz[0].abs).to_i,(@y+0.9).to_i)
  277.           unless passable?((@x+speed+kz[0].abs).to_i,(@y+0.9).to_i, 6)
  278.               tongxing = false
  279.             end
  280.             end
  281.           if $game_map.valid?((@x+speed+kz[0].abs).to_i,(@y+0.9-kz[0].abs).to_i)
  282.           unless passable?((@x+speed+kz[0].abs).to_i,(@y+0.9-kz[0].abs).to_i, 6)
  283.               tongxing = false
  284.             end
  285.             end
  286.           if tongxing == true
  287.  
  288.           turn_right if turn_enabled
  289.           @x += speed
  290.         else
  291.           turn_right if turn_enabled
  292.           @x = @x.to_i
  293.         end
  294.         end
  295.       else
  296.     #    if passable?((@x+speed).to_i,(@y+0.9).to_i, 6)
  297.          if passable?((@x+speed).to_i,(@y+1).to_i, 6)
  298.     #      unless check_event_trigger_touch((@x+speed).to_i+1, @y.to_i)
  299.             @x = (@x+speed).to_i
  300.             @y += speed
  301.       #      turn_right if turn_enabled
  302.      #     else
  303.      #       @x = (@x+speed).to_i
  304.     #        turn_right if turn_enabled
  305.      #     end
  306.         else
  307.           turn_right if turn_enabled
  308.           @x = (@x+speed).to_i
  309.           check_event_trigger_touch(@x.to_i+1, @y.to_i)
  310.         end
  311.       end
  312.       end
  313.     else
  314.       mr(turn_enabled)
  315.     end
  316.   end
  317.  
  318.   alias:mu:move_up
  319.   def move_up(turn_enabled = true,bot=true)
  320.   kz = [0,0]
  321.         #不能移动的情况
  322.         if defined? self.battler.agi == nil
  323.     #解除逃跑
  324.     self.battler.remove_state(29)
  325.          # 睡眠
  326.          return  if self.battler.states.include?(90)
  327.          #害怕
  328.          return  if self.battler.states.include?(91)
  329.          #待命
  330.          return  if self.battler.states.include?(6)
  331.     return  if $game_temp.cast_time > 0 and self.is_a?(Game_Player)
  332.     return   if @cold_countsf > 0
  333.     #大型尺寸移动接触
  334.     if XAS_BA_ENEMY::BODY_SQUARE.include?(self.battler.id) and
  335.      not XAS_BA_ENEMY::BODY_SQUARE_QH.include?(self.battler.id)
  336.     kz = [-XAS_BA_ENEMY::BODY_SQUARE[self.battler.id],XAS_BA_ENEMY::BODY_SQUARE[self.battler.id]]
  337.   end
  338.   end
  339.     unless bot
  340.       speed1 = (2**@move_speed).to_f/128
  341.       speed2 = speed1 - speed1.to_i
  342.       speed = speed1.to_i
  343.       for i in 0..speed1.to_i
  344.         if i == 0
  345.           speed = speed2
  346.         else
  347.           speed = 0.5
  348.           end
  349.       if passable?(@x.to_i, (@y-speed+0.9).to_i, 8)
  350.         if @x.to_i != @x
  351.  
  352.           tongxing = true
  353.           for i in kz
  354.             next unless $game_map.valid?((@x+0.9+i).to_i, (@y-speed+0.9-i.abs).to_i)
  355.             unless passable?((@x+0.9+i).to_i,(@y-speed+0.9-i.abs).to_i, 8)
  356.               tongxing = false
  357.             end
  358.           end
  359.           if $game_map.valid?((@x+0.9).to_i, (@y-speed+0.9-kz[0].abs).to_i)
  360.           unless passable?((@x+0.9).to_i,(@y-speed+0.9-kz[0].abs).to_i, 8)
  361.               tongxing = false
  362.             end
  363.             end
  364.           if tongxing == true
  365.  
  366.        #   if passable?((@x+0.9).to_i,(@y-speed+0.9).to_i, 8)
  367.             turn_up if turn_enabled
  368.             @y -= speed
  369.           else
  370.           if  passable?((@x-0.1).to_i,(@y-speed+0.9).to_i, 8)
  371.       #      unless check_event_trigger_touch(@x.to_i+1, @y.to_i-1)
  372.               @y = @y.to_i
  373.               @x -= speed
  374.               turn_up if turn_enabled
  375.             else
  376.               turn_up if turn_enabled
  377.             end
  378.           end
  379.         else
  380.  
  381.           tongxing = true
  382.           for i in kz
  383.             next unless $game_map.valid?((@x+0.9+i).to_i, (@y-speed+0.9-i.abs).to_i)
  384.             unless passable?((@x+0.9+i).to_i,(@y-speed+0.9-i.abs).to_i, 8)
  385.               tongxing = false
  386.             end
  387.           end
  388.           if $game_map.valid?((@x+0.9).to_i, (@y-speed+0.9-kz[0].abs).to_i)
  389.           unless passable?((@x+0.9).to_i,(@y-speed+0.9-kz[0].abs).to_i, 8)
  390.               tongxing = false
  391.             end
  392.             end
  393.           if tongxing == true
  394.           turn_up if turn_enabled
  395.           @y -= speed
  396.         else
  397.           turn_right if turn_enabled
  398.           @y = @y.to_i
  399.         end
  400.         end
  401.       else
  402.       #  if passable?((@x+0.9).to_i,(@y-speed+0.9).to_i, 8)
  403.        #   unless check_event_trigger_touch(@x.to_i, @y.to_i-1)
  404.        #     @y = @y.to_i
  405.        #     @x += speed
  406.        #     turn_up if turn_enabled
  407.        #   else
  408.         #    turn_up if turn_enabled
  409.             if passable?((@x+1).to_i,(@y-speed+0.9).to_i, 8)
  410.               @x += speed
  411.         #    elsif passable?((@x-0.9).to_i-1,(@y-speed+0.9).to_i, 8)
  412.         #      @x -= speed
  413.         #      else
  414.             @y = @y.to_i
  415.         #    end
  416.       #    end
  417.         else
  418.           turn_up if turn_enabled
  419.           @y = @y.to_i
  420.           check_event_trigger_touch(@x.to_i, @y.to_i-1)
  421.         end
  422.       end
  423.       end
  424.     else
  425.       mu(turn_enabled)
  426.     end
  427.     @y = 10 if @y < 10 and $game_switches[32] == true
  428.   end
  429.  
  430. end
  431.  
  432.  
  433.  
  434. class Game_Event < Game_Character
  435.     def check_event_trigger_touch(x, y)
  436.     # 事件执行中的情况下
  437.     if $game_system.map_interpreter.running?
  438.       return
  439.     end
  440.     # 目标为 [与事件接触] 以及和主角坐标一致的情况下
  441.    # if @trigger == 2 and x == $game_player.x and y == $game_player.y
  442.     if @trigger == 2 and  ($game_player.x+0.5).between?(x-0.5,x+1.5) and ($game_player.y+0.5).between?(y,y+1.5)
  443.       # 除跳跃中以外的情况、启动判定就是正面的事件
  444.       if not jumping? #and not over_trigger?
  445.         start
  446.       end
  447.     end
  448.   end
  449.   def check_event_trigger_auto
  450.     # 目标为 [与事件接触] 以及和主角坐标一致的情况下
  451.     if @trigger == 2 and ($game_player.x+0.5).between?(@x-0.5,@x+1.5) and ($game_player.y+0.5).between?(@y,@y+1.5)
  452.       # 除跳跃中以外的情况、启动判定就是同位置的事件
  453.       if not jumping? #and over_trigger?
  454.         start
  455.       end
  456.     end
  457.     # 目标是 [自动执行] 的情况下
  458.     if @trigger == 3
  459.       start
  460.     end
  461.   end
  462.  
  463. end
  464.  
  465.  
  466. class Game_Player < Game_Character
  467.  
  468.   def check_event_trigger_here(triggers)
  469.     result = false
  470.     if $game_system.map_interpreter.running?
  471.       return result
  472.     end
  473.     x = $game_variables[138]["x"]
  474.     y = $game_variables[138]["y"]
  475.  
  476.     for event in $game_map.events.values
  477.       next  if (event.x+0.5).between?(x-0.5,x+1.5) and (event.y+0.5).between?(y,y+1.5) and
  478.       (event.name == "传送" or event.name.include?("陷阱"))
  479.       if (event.x+0.5).between?(@x-0.5,@x+1.5) and (event.y+0.5).between?(@y,@y+1.5) and triggers.include?(event.trigger)
  480.         if not event.jumping? #and event.over_trigger?
  481.           event.start
  482.           result = true
  483.         end
  484.       end
  485.     end
  486.     return result
  487.   end
  488.  
  489.   def check_event_trigger_there(triggers)
  490.     result = false
  491.     if $game_system.map_interpreter.running?
  492.       return result
  493.     end
  494.     new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
  495.     new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
  496.     for event in $game_map.events.values
  497.       if (event.x+0.5).between?(new_x-0.5,new_x+1.5) and (event.y+0.5).between?(new_y,new_y+1.5) and triggers.include?(event.trigger)
  498.         if not event.jumping? #and not event.over_trigger?
  499.           event.start
  500.           result = true
  501.         end
  502.       end
  503.     end
  504.     return result
  505.   end

点评

若干年前的彩笔脚本就不要吐槽了……  发表于 2017-7-27 22:42
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-23 13:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表