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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
打印 上一主题 下一主题

问个事件脚本的问题

 关闭 [复制链接]

Lv5.捕梦者

梦石
0
星屑
39158
在线时间
5737 小时
注册时间
2006-11-10
帖子
6638
11
发表于 2008-8-19 23:44:37 | 只看该作者
原来默认脚本已经有这个定义了= =....
def check_event(x, y)
    for event in $game_map.events.values
      if event.x == x and event.y == y
        return event.id
      end
    end
  end
调用$game_map.check_event(x,y)就可以获得该地点上事件的ID

a = $game_map.check_event(x,y)
$game_map.events[a].start
就可以启动该地点上的事件。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

12
 楼主| 发表于 2008-8-19 23:46:05 | 只看该作者
以下引用IamI于2008-8-19 15:43:02的发言:

不,事件脚本里就这么写= =你把大写的X,Y改掉就行。当然你要偷懒的话也行
加入脚本
class Interpreter
def set_on(ax,ay)
for i in $game_map.events
if i.x == ax and i.y == ay
i.start
end
end
end
end

然后事件脚本直接set_on(x坐标,y坐标)

但是我要说的是这个效率并不是很高

那么你之前的那个效率高一些?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

13
发表于 2008-8-19 23:46:24 | 只看该作者
我错了我错了= =看菜刀
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

14
 楼主| 发表于 2008-8-19 23:47:16 | 只看该作者
囧rz,我刚认可你……  - -
[LINE]1,#dddddd[/LINE]
以下引用灯笼菜刀王于2008-8-19 15:44:37的发言:

原来默认脚本已经有这个定义了= =....
def check_event(x, y)
   for event in $game_map.events.values
     if event.x == x and event.y == y
       return event.id
     end
   end
end
调用$game_map.check_event(x,y)就可以获得该地点上事件的ID

a = $game_map.check_event(x,y)
$game_map.events[a].start
就可以启动该地点上的事件。

直接
a = $game_map.check_event(x,y)
$game_map.events[a].start

不用插入什么脚本?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39158
在线时间
5737 小时
注册时间
2006-11-10
帖子
6638
15
发表于 2008-8-19 23:47:51 | 只看该作者
悄悄连帖....
以下引用IamI于2008-8-19 15:37:58的发言:

for i in $game_map.events
if i.x == X and i.y == Y
i.start
end
end
真的很简单,菜刀你在干吗= =
改掉大些的XY


[本贴由作者于 2008-8-19 15:38:14 最后编辑]

= =我一开始也打算这样写,因为对game_map不熟悉,去查了下原脚本,原脚本有定义获得xy上的事件ID的定义了,直接用就可以了-。-,不用在循环判断一次。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

16
发表于 2008-8-19 23:48:50 | 只看该作者
以下引用灯笼菜刀王于2008-8-19 15:47:51的发言:

悄悄连帖....

以下引用IamI于2008-8-19 15:37:58的发言:

for i in $game_map.events
if i.x == X and i.y == Y
i.start
end
end
真的很简单,菜刀你在干吗= =
改掉大些的XY


[本贴由作者于 2008-8-19 15:38:14 最后编辑]


= =我一开始也打算这样写,因为对game_map不熟悉,去查了下原脚本,原脚本有定义获得xy上的事件ID的定义了,直接用就可以了-。-,不用在循环判断一次。

问题是我漏了一个values,这是最大问题= =来吧,我们去开水区转分,我给你349,我先去开帖子
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39158
在线时间
5737 小时
注册时间
2006-11-10
帖子
6638
17
发表于 2009-6-12 08:00:00 | 只看该作者
不用不用,无所谓-。-不用了。

回小柯,直接在事件里用脚本:a = $game_map.check_event(x,y)
                            $game_map.events[a].start
就可以了,默认脚本。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-12 18:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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