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

Project1

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

区域遇敌-脚本简洁版(无事件)

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
93 小时
注册时间
2008-5-16
帖子
745
跳转到指定楼层
1
发表于 2008-7-10 03:29:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
类型 0 = 单独区域遇敌, 1 = 区域遇敌+普通遇敌 , 2 = 普通遇敌
使用方法在脚本中,比较简便使用!


看到事件设置区域敌人好象很麻烦,所以写了个脚本简洁版的......
好象很不理想的方法,但是写成了{/gg}
好了不多说!
贴脚本
  1. =begin


  2. ■ 区域遇敌-脚本版 By 茄子
  3. 联系QQ 9244579


  4. 轻松设置某个区域遇敌的敌人ID
  5. 在每个地图上放一个并行事件
  6. 事件内容为脚本(也就是设置该地图的敌人)
  7. 如:

  8. Control_Enemys::RANGS = [  
  9. [1,[0,3],[0,3]],   
  10. 数据分别为
  11. [数据库里敌人队伍1,[起始X坐标0,目的X坐标3],[起始Y坐标0,目的Y坐标3]]
  12. ==>该敌人ID=1)<==     ================>该敌人遇到的范围<=============
  13. 该ID是数据库中队伍的ID,不是敌人的ID。
  14. 遇敌概率还是在地图上设置
  15. 如果不需要区域遇敌,类型 0 = 单独区域遇敌, 1 = 区域遇敌+普通遇敌 , 2 = 普通遇敌
  16. 普通遇敌遇到的就是你原来在地图上设置的敌人了。
  17. Control_Enemys::TYPE = 2
  18. ]
  19. 设置完后在最后需要设置现在地图原来的敌人编号

  20. 如:

  21. 原来地图设置敌人两个编号为 1 2 都是幽灵
  22. Control_Enemys::OLD_ENEMYS = [1,2] 这样以便返回以前的敌人。


  23. =end
  24. module Control_Enemys
  25. OLD_ENEMYS = [1,2]
  26. RANGS =  [  
  27. [1,[0,3],[0,3]],
  28. [4,[16,19],[0,3]]
  29. ]
  30. TYPE = 0
  31. end
  32. class Game_Player
  33.   attr_writer :encounter_count
  34. end
  35. class Game_Map
  36.   attr_writer :encounter_list
  37. end
  38. class Scene_Map
  39.   def update
  40.     loop do
  41.       $game_map.update
  42.       $game_system.map_interpreter.update
  43.       $game_player.update
  44.       $game_system.update
  45.       $game_screen.update
  46.       unless $game_temp.player_transferring
  47.         break
  48.       end
  49.       transfer_player
  50.       if $game_temp.transition_processing
  51.         break
  52.       end
  53.     end
  54.     @spriteset.update
  55.     @message_window.update
  56.     if $game_temp.gameover
  57.       $scene = Scene_Gameover.new
  58.       return
  59.     end
  60.     if $game_temp.to_title
  61.       $scene = Scene_Title.new
  62.       return
  63.     end
  64.     if $game_temp.transition_processing
  65.       $game_temp.transition_processing = false
  66.       if $game_temp.transition_name == ""
  67.         Graphics.transition(20)
  68.       else
  69.         Graphics.transition(40, "Graphics/Transitions/" +
  70.           $game_temp.transition_name)
  71.       end
  72.     end
  73.     if $game_temp.message_window_showing
  74.       return
  75.     end
  76.     if Control_Enemys::TYPE == 1
  77.       if $game_player.encounter_count == 0 and Control_Enemys::OLD_ENEMYS != []
  78.       unless $game_system.map_interpreter.running? or
  79.              $game_system.encounter_disabled   
  80.         n = rand(Control_Enemys::OLD_ENEMYS.size)
  81.         troop_id = Control_Enemys::OLD_ENEMYS[n]
  82.         if $data_troops[troop_id] != nil
  83.           $game_temp.battle_calling = true
  84.           $game_temp.battle_troop_id = troop_id
  85.           $game_temp.battle_can_escape = true
  86.           $game_temp.battle_can_lose = false
  87.           $game_temp.battle_proc = nil
  88.          end
  89.         end
  90.       end  
  91.     end  
  92.     else
  93.      for i in Control_Enemys::RANGS
  94.       if $game_player.x >= i[1][0] and $game_player.x <= i[1][1] and
  95.        $game_player.y >= i[2][0] and $game_player.y <= i[2][1]
  96.       if $game_player.encounter_count == 0 and i[0] != []
  97.       unless $game_system.map_interpreter.running? or
  98.              $game_system.encounter_disabled
  99.         enemys = []
  100.         enemys.push(i[0])
  101.         n = rand(enemys.size)
  102.         troop_id = enemys[n]
  103.         if $data_troops[troop_id] != nil
  104.           $game_temp.battle_calling = true
  105.           $game_temp.battle_troop_id = troop_id
  106.           $game_temp.battle_can_escape = true
  107.           $game_temp.battle_can_lose = false
  108.           $game_temp.battle_proc = nil
  109.          end
  110.         end
  111.        end  
  112.      end
  113.    end
  114.     if Control_Enemys::TYPE == 2
  115.      if $game_player.encounter_count == 0 and $game_map.encounter_list != []
  116.       unless $game_system.map_interpreter.running? or
  117.              $game_system.encounter_disabled
  118.         n = rand($game_map.encounter_list.size)
  119.         troop_id = $game_map.encounter_list[n]
  120.         if $data_troops[troop_id] != nil
  121.           $game_temp.battle_calling = true
  122.           $game_temp.battle_troop_id = troop_id
  123.           $game_temp.battle_can_escape = true
  124.           $game_temp.battle_can_lose = false
  125.           $game_temp.battle_proc = nil
  126.         end
  127.       end
  128.     end
  129.    end
  130.     if Input.trigger?(Input::B)
  131.       unless $game_system.map_interpreter.running? or
  132.         $game_system.menu_disabled
  133.         $game_temp.menu_calling = true
  134.         $game_temp.menu_beep = true
  135.       end
  136.     end
  137.     if $DEBUG and Input.press?(Input::F9)
  138.       $game_temp.debug_calling = true
  139.     end
  140.     unless $game_player.moving?
  141.       if $game_temp.battle_calling
  142.         call_battle
  143.       elsif $game_temp.shop_calling
  144.         call_shop
  145.       elsif $game_temp.name_calling
  146.         call_name
  147.       elsif $game_temp.menu_calling
  148.         call_menu
  149.       elsif $game_temp.save_calling
  150.         call_save
  151.       elsif $game_temp.debug_calling
  152.         call_debug
  153.       end
  154.     end
  155.   end
  156. end
复制代码

然后在放个范例吧
这样比较好容易上手。
点我下载范例

Lv4.逐梦者

世界坑化协会

梦石
0
星屑
8122
在线时间
1563 小时
注册时间
2007-3-13
帖子
5542

极短25参与极短23参与极短21参与开拓者贵宾第一届化妆舞会最佳服饰奖

2
发表于 2008-7-10 06:14:53 | 只看该作者
嗯~~这样啊~~不过做区域遇敌还是VX方便些~{/dy}
你的肩膀上有肩周炎~♪  秒懂  ☚   \没有
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-9
帖子
14
3
发表于 2008-7-10 20:51:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
4
发表于 2008-7-10 21:08:22 | 只看该作者
以下引用v2sam于2008-7-9 22:14:53的发言:

嗯~~这样啊~~不过做区域遇敌还是VX方便些~


是啊.....

这让我想起了口袋
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-9
帖子
14
5
发表于 2008-7-10 21:21:17 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
93 小时
注册时间
2008-5-16
帖子
745
6
 楼主| 发表于 2008-7-11 02:15:32 | 只看该作者
汗``抱歉哈,是事件里的脚本没有加#给注释掉所以出现的问题
本来我已经修改了!更换了,不知为何也这样!
再次修改完毕!{/tp}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
93 小时
注册时间
2008-5-16
帖子
745
7
 楼主| 发表于 2008-7-11 02:31:34 | 只看该作者
某使用者发短信告诉我,进入工程,找到那个区域,第一步就遇敌了。
因为我在设置该地图时,遇敌率为5步,所以到达区域时早就
超过5步了,你可以更改地图设置中的步数。来调整遇敌率。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-9
帖子
14
8
发表于 2008-7-11 02:34:17 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
223
在线时间
313 小时
注册时间
2008-1-26
帖子
185
9
发表于 2008-7-11 03:34:00 | 只看该作者
不错的遇敌方法{/cy}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
705 小时
注册时间
2007-12-23
帖子
874
10
发表于 2008-7-21 20:37:14 | 只看该作者
很不错哦
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 10:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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