Project1

标题: 到达新地图时,事件(怪物)的随机出现与随机数量 [打印本页]

作者: 0978912012    时间: 2008-8-26 20:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: IamI    时间: 2008-8-26 20:35
  1. #########################################
  2. # 本脚本出自 梦幻古都  51cool.uu1001.com
  3. #########################################
  4. class Scene_Map
  5.   def ev(map_id,event_id,x,y)
  6.     map = load_data(sprintf("Data/Map%03d.rxdata", map_id))
  7.     event = map.events[event_id]
  8.     $game_map.events[$game_map.events.size+1] = Game_Event.new($game_map.map_id,event)
  9.     $game_map.events[$game_map.events.size].moveto(x,y)
  10.     @spriteset.dispose
  11.     @spriteset = Spriteset_Map.new
  12.     return $game_map.events.size
  13.   end
  14. end
复制代码

class Game_Map
attr_reader:map_id
end
class Interpter
def init_it(event_id)
  m_id = $game_map.map_id
  if $scene.id_a?(Scene_Map)
   $scene.ev(m_id,event_id,rand($game_map.width),rand($game_map.height))
  end
end
end
=>Do_it:
init_it [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: sizz123    时间: 2008-8-26 20:39
  复制不会做,从程序技术上我无能为力
  但如果仅仅是效果上,还是有点办法的


  完全可以写个公共并行处理:当角色在某个点的时候,发生事件。
  
  定义3个变量:a,b,c
  a=rand(地图横坐标),b=rand(地图纵坐标)
  如果角色坐标为a,b的时候
  战斗开始
  c+=1 '不是有5个敌人吗?
  
  

  所以说:要从小受(接受事件),变成小攻(自己设计一个事件)去接触

  


作者: 0978912012    时间: 2008-8-27 03:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: mango199675    时间: 2008-8-27 03:39
要这样还不如直接在地图设置直接设置走几不路就出来个战斗的。
作者: 0978912012    时间: 2008-8-27 16:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: wulin133    时间: 2008-8-28 05:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: 0978912012    时间: 2008-8-29 16:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: IamI    时间: 2008-8-29 17:04
我说LZ,脚本还有问题你就认可了啊=v=
我从来都对售后服务感冒的说……
是这样的,在加上了脚本以后呢,在一张地图里面执行init_it(事件ID),就会在地图上的随机位置跳出来一个事件,但是我自己并没有测试过……

前面的那段脚本,是我从剑之飞龙哪里弄来的,有什么问题我自己也不清楚的说……
很重要的是,在编写事件的时候,中间ID号不能中断,否则最后那个事件会被覆盖
作者: 0978912012    时间: 2008-8-29 17:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: IamI    时间: 2008-8-29 17:31
我猛然发现我有天然呆嫌疑了= =居然脚本连错两处= =
脚本修正:
  1. #########################################
  2. # 本脚本出自 梦幻古都  51cool.uu1001.com
  3. #########################################
  4. class Scene_Map
  5. def ev(map_id,event_id,x,y)
  6.    map = load_data(sprintf("Data/Map%03d.rxdata", map_id))
  7.    event = map.events[event_id]
  8.    $game_map.events[$game_map.events.size+1] = Game_Event.new($game_map.map_id,event)
  9.    $game_map.events[$game_map.events.size].moveto(x,y)
  10.    @spriteset.dispose
  11.    @spriteset = Spriteset_Map.new
  12.    return $game_map.events.size
  13. end
  14. end

  15. #以下为IamI邪恶的后的代码
  16. class Game_Map
  17. attr_reader:map_id
  18. end
  19. class Interpreter
  20. def init_it(event_id)
  21. m_id = $game_map.map_id
  22. if $scene.is_a?(Scene_Map)
  23. $scene.ev(m_id,event_id,rand($game_map.width),rand($game_map.height))
  24. end
  25. end
  26. end
复制代码

在地图上执行init_it(事件ID)
作者: 0978912012    时间: 2008-8-29 17:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: IamI    时间: 2008-8-29 17:45
当然是这样的了XD{/hx}
如果你想要真身被毁复制品全灭的话就用开关来控制即可,放一个真身,再放一个复制品模型,复制品当某某开关打开时消失,真身被打倒时开关打开
以上是废话
原事件如果设置为移动新事件也会移动的。
作者: 0978912012    时间: 2008-8-29 17:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: IamI    时间: 2008-8-29 18:11
  1. #########################################
  2. # 本脚本出自 梦幻古都  51cool.uu1001.com
  3. #########################################
  4. class Scene_Map
  5. def ev(map_id,event_id,x,y)
  6.    map = load_data(sprintf("Data/Map%03d.rxdata", map_id))
  7.    event = map.events[event_id]
  8.    event.id = $game_map.events.size + 1
  9.    $game_map.events[$game_map.events.size+1] = Game_Event.new($game_map.map_id,event.clone)
  10.    $game_map.events[$game_map.events.size].moveto(x,y)
  11.    @spriteset.dispose
  12.    @spriteset = Spriteset_Map.new
  13.    return $game_map.events.size
  14. end
  15. end


  16. class Game_Map
  17. attr_reader:map_id
  18. end
  19. class Interpreter
  20. def init_it(event_id)
  21. m_id = $game_map.map_id
  22. if $scene.is_a?(Scene_Map)
  23. $scene.ev(m_id,event_id,rand($game_map.width),rand($game_map.height))
  24. end
  25. end
  26. end
复制代码

这样就完全独立了,另外两个我实在懒得弄了……请等其他有耐心的人吧……
作者: 0978912012    时间: 2008-8-29 22:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: 0978912012    时间: 2008-8-30 07:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 0978912012    时间: 2008-9-1 17:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: 0978912012    时间: 2008-9-2 20:39
提示: 作者被禁止或删除 内容自动屏蔽




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