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

Project1

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

[已经过期] 如何用脚本写设置移动路线

[复制链接]

Lv4.逐梦者

梦石
8
星屑
3943
在线时间
396 小时
注册时间
2017-10-11
帖子
154
跳转到指定楼层
1
发表于 2017-10-18 14:06:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
在论坛搜索过之前有人问过,但部分链接失效,部分链接的脚本却无法用上。
所以重新求教一遍

Lv4.逐梦者

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

开拓者

2
发表于 2017-10-18 14:59:40 | 只看该作者
#向下移动
move_down
#向左移动
move_left
#向右移动
move_right
#向上移动
move_up
#随机移动
move_random
#接近主角
move_toward_player
#远离主角
move_away_from_player
#前进一步
move_forward
#后退一步
move_backward
#跳跃
jump(X,Y)
#面向下
turn_down
#面向左
turn_left
#面向右
turn_right
#面向上
turn_up
在Game_Character 3脚本里可以找到
使用方法就是事件后面  . 一下 .turn_up
或者在Game_Character里面对当前对象使用
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
8
星屑
3943
在线时间
396 小时
注册时间
2017-10-11
帖子
154
3
 楼主| 发表于 2017-10-18 15:10:46 | 只看该作者
yang1zhi 发表于 2017-10-18 14:59
#向下移动
move_down
#向左移动


这个在事件脚本里写,会报错
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23999
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

4
发表于 2017-10-18 15:13:01 手机端发表。 | 只看该作者
CCD0645 发表于 2017-10-18 15:10
这个在事件脚本里写,会报错

当然会报错,事件脚本里的self对象是interpreter的实例。你要在事件的自定义移动路线里的脚本才能直接使用。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
8
星屑
3943
在线时间
396 小时
注册时间
2017-10-11
帖子
154
5
 楼主| 发表于 2017-10-18 15:44:40 | 只看该作者
guoxiaomi 发表于 2017-10-18 15:13
当然会报错,事件脚本里的self对象是interpreter的实例。你要在事件的自定义移动路线里的脚本才能直接使 ...

那怎样才能直接在脚本页使用呢?
因为自定义移动路线里的脚本只能写一行,不能添加条件判断

点评

获取当前事件ID,然后在事件列表里找到当前事件。$game_map.events[@event_id].  发表于 2017-10-18 16:54
换行用;  发表于 2017-10-18 16:17
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23999
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

6
发表于 2017-10-18 17:01:31 手机端发表。 | 只看该作者
本帖最后由 guoxiaomi 于 2017-10-18 23:53 编辑
CCD0645 发表于 2017-10-18 15:44
那怎样才能直接在脚本页使用呢?
因为自定义移动路线里的脚本只能写一行,不能添加条件判断 ...

也可以做class Game_Event里定义函数,这里直接调用就行
如果有足够的耐心……可以看我签名里写的联机脚本,data/region_net.rb里面就有关于创建事件,设置事件的移动等……

好像签名没了……https://rpg.blue/thread-402197-1-1.html


脚本里插入:
  1. class Game_Event < Game_Character
  2.   def move_self_defined(x)
  3.     if x == 0
  4.       move_left
  5.     else
  6.       move_right
  7.     end
  8.   end
  9. end
复制代码

然后在事件的移动路线里设置,脚本:"move_self_defined(0)",即可达到判断变量实现不同的移动路线

点评

移动路线对应的RUBY代码,可以去Game_Character的脚本里找。设置移动路线,还是直接用事件方便。  发表于 2017-11-9 12:45
移动路线里,穿透ON,OFF,总在最前面显示ONOFF等命令怎么写  发表于 2017-11-9 03:35
move_left等命令只是当前事件的移动路线,设置主角的移动路线怎么写?  发表于 2017-11-9 02:40
有没有具体点的定义方法,看了你的联机脚本,对我来说,难度太高了,rb文件也不知道怎么打开看  发表于 2017-10-18 21:32
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
8
星屑
3943
在线时间
396 小时
注册时间
2017-10-11
帖子
154
7
 楼主| 发表于 2017-10-22 13:10:26 | 只看该作者
guoxiaomi 发表于 2017-10-18 17:01
也可以做class Game_Event里定义函数,这里直接调用就行
如果有足够的耐心……可以看我签名里写的联机脚本 ...

这个始终还是要用移动路线里面的脚本,我是想用外面的脚本,
好比,我需要让地图中所有符合条件的事件都向主角位置移动,这样直接用一个并行处理控制多个事件行动
该如何做

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36462
在线时间
10800 小时
注册时间
2009-3-15
帖子
4815
8
发表于 2017-10-22 14:42:54 | 只看该作者
本帖最后由 soulsaga 于 2017-10-22 14:54 编辑

RUBY 代码复制
  1. class Interpreter
  2. def command_209
  3.     # 获取角色
  4.     character = get_character(@parameters[0])
  5.     # 角色不存在的情况下
  6.     if character == nil
  7.       # 继续
  8.       return true
  9.     end
  10.     # 强制移动路线
  11.     if @parameters[0] == 1
  12.       for i in 1..$game_map.events.size
  13.         character = get_character(i)
  14.     character.force_move_route(@parameters[1]) if $game_map.events[i].x <= 20
  15.   end
  16. else
  17.   character.force_move_route(@parameters[1])
  18.   end
  19.     # 继续
  20.     return true
  21.   end
  22.   end

插入到MAIN上面..
if @parameters[0] == 1这行
1等於当进行1路线移动为1号事件时当前地图所有事件都会执行路线移动..
character.force_move_route(@parameters[1]) if $game_map.events.x <= 20这行就是任意事件的X坐标小於等於20时该事件才会执行强制移动..其他判断条件你问大神就好了..
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
23201
在线时间
2387 小时
注册时间
2005-10-15
帖子
1166

开拓者

9
发表于 2017-11-8 23:58:00 | 只看该作者
CCD0645 发表于 2017-10-22 13:10
这个始终还是要用移动路线里面的脚本,我是想用外面的脚本,
好比,我需要让地图中所有符合条件的事件都 ...

脚本:
$game_map.events.each_value do |v|
  if ....你的条件....
    mr = RPG::MoveRoute.new
    mr.repeat = true
    mr.skippable = true
    mr.list = [10, 0].map do |x|
      RPG::MoveCommand.new(x)
    end
    v.force_move_route(mr)
  end
end
等待移动结束
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 12:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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