Project1

标题: 怎么获得事件的ID呢? [打印本页]

作者: 9244579    时间: 2008-2-13 04:34
标题: 怎么获得事件的ID呢?
怎么获得事件的ID呢。。。
就象地图一样,到了一个新地图就获得这个地图的ID来自动条用!!
事件我也想要!!
如:我在和这事件对话
就会自动调用这事件咯!!

[LINE]1,#dddddd[/LINE]帖子已被修改,详情请看版规
[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 做游戏的新手    时间: 2008-2-13 04:34
什么意思?
作者: 9244579    时间: 2008-2-13 04:40
汗,我都不知道怎么表达了。
就是,比如说:
  地图嘛! 现在要描绘出地图名,但是我只有办法描绘出 一个地图的名字,
我到了另一个地图,还要在描绘一段脚本,很麻烦啊!
我想,到了哪张地图,自己会选折这个地图显示地图名字
作者: 9244579    时间: 2008-2-13 04:55
      event = $game_map.events[7]
     draw_event_graphic(event, 80, 100)

这样我就能描绘出一个事件007的行走图象了,当然前提是
    #--------------------------------------------------------------------------
  # ● 事件图形的描绘
  #     event : 角色
  #     x     : 描画目标 X 坐标
  #     y     : 描画目标 Y 坐标
  #--------------------------------------------------------------------------
  def draw_event_graphic(event, x, y)
    bitmap = RPG::Cache.character(event.character_name, event.character_hue)
    cw = bitmap.width / 4
    ch = bitmap.height / 4
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  end

定义了这段
但是我只能弄出007事件的行走图来
我的意思就是说,碰到什么事件就能描绘出什么事件的行走图来!
作者: 9244579    时间: 2008-2-13 05:25
      # 获取地图ID
      newid = $game_map.map_id
      # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
      if newid != @id
        @id = newid
        end
newid = $game_map.map_id
就象这句,怎么获得事件的ID!!thank you
作者: 血色№涟漪    时间: 2008-2-13 05:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: 9244579    时间: 2008-2-13 05:34
我对脚本不怎么懂
获得事件的ID我全试了,貌似不行啊
$game_map.event.id?
作者: link006007    时间: 2008-2-13 05:36
如果只要当前地图的话,  $game_map.events[7].id

作者: 9244579    时间: 2008-2-13 05:46
  不是那个意思啊!!!!我想的是和地图的效果一样
能获得当前事件的ID!!!!
因为在脚本里,我只能显示单一的事件,自己选择显示了ID = 007事件的图象!
我要自己不选择,它知道是ID = 007 ,自己会帮我选择当前ID = 007图象咯

作者: link006007    时间: 2008-2-13 06:01
事件不是地图那样只有一个,   要获得当前事件至少要有个判断条件吧?
不然怎么知道你认为的当前活动事件是什么样子的?
.starting  当前事件是否激活  不过这个不能排除并行处理...
如果把Game_Event的events属性改成可读的话, 还可以获得更多判断条件
作者: 9244579    时间: 2008-2-13 06:03
     汗``LS的!!我不懂脚本额!!你帮我弄出个来可以么
Ps:地图那个好象有个这样的判断!不知道能不能用事件ID同样判断
      # 获取地图ID
      newid = $game_map.map_id
      # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
      if newid != @id
        @id = newid
        end

作者: link006007    时间: 2008-2-13 06:20
除了并行处理,  事件一次只能激活一个
$game_map.events.starting && $game_map.events.trigger != 4  获取当前的事件
当然了, 因为events的hash, 取出了for循环一个个判断, 我想不出更好的方法
要不然就在Game_Event里面添加一个@@currEventID
然后在def start的if里面添加一个判断, 判断是否并行, 不是的话@@currEventID = @id
在添加一个函数
def self.currEventID()
  return @@currEventID
end
到时Game_Event::currEventID()就是当前非并行事件ID.
不过一般执行非并行事件是不能做其它事的...  你拿这个有什么用?
作者: 9244579    时间: 2008-2-13 16:22
我想与事件触近后,发生战斗,这个战斗系统是自己弄的!!!所以用不到[战斗处理]了。。
而我战斗的时候要取到该事件的行走图做为战斗图!!!!也就是做为敌人!!

作者: 雷欧纳德    时间: 2008-2-13 21:12
以下引用9244579于2008-2-13 8:22:18的发言:

我想与事件触近后,发生战斗,这个战斗系统是自己弄的!!!所以用不到[战斗处理]了。。
而我战斗的时候要取到该事件的行走图做为战斗图!!!!也就是做为敌人!!


遇到该事件后,变量带入一个标识
进入自战,根据标识选择战斗图
作者: 9244579    时间: 2008-2-14 00:59
本人脚本瞎子。。。。。。。。请赐教
作者: 沉影不器    时间: 2008-2-14 01:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: 沉影不器    时间: 2008-2-14 01:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: 缺牙de兔子    时间: 2008-2-14 01:28
$game_map.events[7] 这就是表示7号事件
没必要去获取他的ID

作者: 天狼星1110    时间: 2008-2-14 01:29
怎么都往复杂了去考虑呢{/gg}
最简单的方法是在做事件比如NPC的时候在事件内容第一个里用个变量手动代入数值不就得了……这么说楼主比较容易理解吧? [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 9244579    时间: 2008-2-14 02:16
我晕拉,不知道怎么表达自己的意思。
比如说:现在我自己弄了个战斗系统,魔塔一样的,Scene_自动战斗
然后我碰到敌人[事件001] 然后开始战斗
得到事件001的战斗图,也就是敌人战斗图{/gg}{/gg}{/gg}{/gg}
这样我在脚本可以边式为$game_map.events[1]
如果我碰到事件002的时候怎么办?怎么表达呢?碰到事件003呢
总不可能一起显示3张行走图吧!!

作者: 魔影    时间: 2008-2-14 02:30
http://rpg.blue/web/htm/news718.htm

这个好象类似
作者: 沉影不器    时间: 2008-2-14 03:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: 沉影不器    时间: 2008-2-14 03:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: 9244579    时间: 2008-2-14 04:18
汗,我也不知道怎么弄啊。
要不就告诉我怎么判断
与事件ID多少接触时
干什么干什么吧!!

作者: 9244579    时间: 2008-2-14 04:23
谢谢天狼星110了。。用变量判断就可以了!!
作者: 天狼星1110    时间: 2008-2-14 20:22
以下引用9244579于2008-2-13 20:23:01的发言:

谢谢天狼星110了。。用变量判断就可以了!!

{/hx}俩人居然都把我的名字写错……




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1