真·可乐 发表于 2025-10-28 12:01 你这头像比较牛B ![]() |
|
本帖最后由 真·可乐 于 2025-10-28 12:07 编辑 写过一个类似的,范围暗雷遇敌。 RUBY 代码复制
|
灯笼菜刀王 发表于 2025-10-27 10:29 6666666 大佬就是大佬,思路开阔,技术硬核,万分感谢赐教~~~~~~ |
本帖最后由 灯笼菜刀王 于 2025-10-27 10:36 编辑 傀儡马夫 发表于 2025-10-26 13:17 栗子, 比如你想要 A区域出现 幽灵 , B区域出现 丧尸, 那, 在数据库建两个敌群, 起名为 ”【0】幽灵“ 和 “【1】丧尸”,然后在地图遇敌列表里把这两个敌群放进去 然后, 想办法给AB两区域做区分, 可以用变量法 也可以用其他, 地形标志,区域ID(新增脚本)等, 只要让pleyer在进入指定区域时, 能获得"0","1" 这样的判断即可 这里用变量法举例子, 可以在地上铺事件, 但是要并排铺两个, 一个踩上的时候改变量为0, 一个踩上时改变量为1, 这样玩家在走出来的时候, 就会自动改变量数值, 并且走到一半回头也不会出问题 但是, 铺事件的方式在有"入口出口"的区域比较好用, 像你图上这样四通八达的区域, 铺一圈事件太麻烦了, 此时可以用并行处理, 通过player的坐标判断, 实时切换变量值 例如, 并行处理, 执行脚本 x = $game_player.x y = $game_player.y if x > 10 and x < 16 and y > 10 and y < 11 $game_variables[10086] = 1 else $game_variables[10086] = 0 end 这样, 就把一个区域给圈上了, 只要玩家走到对应坐标就会改变量为1, 走出去就会改为0了, 此时遇敌就是指定的敌群啦 -------------- RUBY 代码复制
每个区域都要写一串代码太麻烦了, 就附赠你一个直接设置的方法吧, 把它复制到上面那个脚本之下(记得把10086 改成你的区域变量ID数字) 然后, 每张地图, 都设置个"自动执行"的事件, 事件内容为 脚本: 区域设置([1,8,9,10,11], [2,12,13,14,15],[3,16,17,18,19]) 暂时消除事件 - 中括号内的数字是 [区域ID, x1,y1,x2,y2] , 这样在 第一个点和第二个点之间拉出来的矩形就是指定区域, 可以无限添加区域(不过受脚本框限制,笑, 写不下再去改造吧), 在添加的区域以外就是区域0 PS: 要换行的话从逗号处换, 有重叠的区域, 取最靠前的ID 如果想解除区域设置, 就执行事件脚本: 区域设置(nil) ; ======================== 也可以用区域设置脚本, 传送门 此时, 把上面的脚本, tag = 1.to_s 改成 tag = $game_map.xy_ids($game_player.x,$game_player.y)[0].to_s; 就可以了, 比用变量方便, 缺点是需要你会用这个脚本 |
|
RUBY 代码复制
把这段脚本塞到 main 之前 然后, 你就可以在敌群的名字里添加 【1】 作为不同区域的标志, 在该区域里就只会出现带有对应数字标志的敌群(没有设置【数字】的敌群视为通用敌群,任何区域都会出现) 接下来, 就是如何定义"区域" 1, 用变量法, 在区域入口处铺上"接触执行"的事件, 事件内容为改变指定变量的数值从而实现区域区分 ; 这种做法需要把脚本第4行的 tag = 1.to_s 改成 tag = $game_variables[10086].to_s ; 10086换成你要指定的变量ID 2, 地形标志法, 通过不同的地形标志来区分区域 ; 这种做法需要把tag = 1.to_s 改成 tag = terrain_tag($game_player.x, $game_player.y).to_s 3, 扩展法, 使用脚本定义区域ID等 这种做法把 tag = 1.to_s 改成脚本提供的区域ID函数就行了 (记得最后要加上 .to_s 点不要漏了哦) PS: 没测试, 有问题再说 |
无忧谷主幻 发表于 2025-10-22 04:00 感谢大神赐教,我研究研究~~拜谢~~~ ![]() |
|
3,如果以上皆不愿的话 RUBY 代码复制
将(2)和(3)替换为你实际的怪物队伍ID即可 另外如果你还想保留原有队伍列表,前两行可以不用加 |
|
1,最简单的方法,把一个大地图拆分成复数小地图 2,做成明雷或暗雷 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-11-1 09:09
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.