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

Project1

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

[已经解决] 如何設置一個寶箱,隨機出現在設定的地圖區域內?!

[复制链接]

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
跳转到指定楼层
1
发表于 2013-3-13 16:24:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 a000b1745 于 2013-3-19 00:32 编辑

進入RM VA後~按下 F7 ,可以標記 1~ 63 號的地圖區域。

在MAPID : 005 我想設定一個事件(假設為寶箱),
在我進入MAP 005 後這寶箱會隨機的出現在 7號 區域上的其中一格,這要如何做到呢??

能事件解決嗎??
或用上簡單的腳本亦可!!
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
2
发表于 2013-3-13 16:33:00 | 只看该作者
本帖最后由 j433463 于 2013-3-13 16:44 编辑

其實很簡單的,用兩個變量記錄亂數取的 X, Y 座標,比方說,想要在 x 軸 11 ~ 15,Y 軸 6 ~ 12 的範圍內隨機出現寶箱,

就隨機取 x 軸的值 0~4 , 然後 X 的值再加 11,而 y 軸取隨機數 0~6,結果再加 6,就是寶箱的 x, y 座標,

您可以設好一個隱藏看不到寶箱的事件,等到 x, y 座標有了,再移動事件到座標處,切換分頁顯示寶箱,這就好了。






另外有一種方式,是我以前 rm2k3 時嘗試的事件隨機出現方式,用來做在地圖上採集隨機位置出現的藥草、食材任務,

好處是不受矩形範圍限制,因為我是直接取一個亂數值 0~7 到變量3,也就是有八個位置隨機出現藥草,

然後分歧條如果變量3等於 0,藥草出現在 5, 9 位置,如果變量3等於 1,藥草出現在 2, 13 位置,依此類推,

這樣就不一定出現在一個小矩形範圍內,整個地圖都可以納入隨機位置,要多少個隨機,就增加多少位置和亂數,

不過,這樣寫起來會很長一串的分歧條件,設定時比較累,但效果更好。

点评

我參考過這個腳本~ 但不知道如何套用到我說的用法裡頭... http://bbs.66rpg.com/thread-224145-1-1.html  发表于 2013-3-13 16:52
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
3
 楼主| 发表于 2013-3-13 16:50:10 | 只看该作者
大獅子!!
你說的沒錯~ "用兩個變量記錄亂數取的 X, Y 座標 "  這是一種解決方法,
但偏偏我的事件隨機會出現的範圍是很不規則...零碎的...
所以我才想說利用F7 的功能來判定{:2_254:}
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
4
发表于 2013-3-13 17:27:09 | 只看该作者
本帖最后由 j433463 于 2013-3-13 17:32 编辑

我後來補加的另一種方法不行嗎?不限制出現範圍,隨機的。

您說的那個腳本不是適合用來設置隨機寶箱位置的,其實只要在取得 x, y 座標時,用分歧條件下
  1. $game_map.terrain_tag(x, y) == 地形標誌 id
复制代码
來判斷那位置是否符合地形標誌,不是的話重新取 x, y 座標就好了。




喔!更正一下,那個補充的區域控制事件倒是可以,您先亂數取得 x, y 座標,把事件移動到座標位置,然後用那個區域控制事件方式,如 area == M 就 start 事件,如果 area != M 就重新亂數取 x, y 重做一遍,這也是可以的。

点评

在事件腳本大全中,把一個事件暫時消除那邊有提到啊,如果是消除本事件 X = @event_id,就是說,把 70 改成 @event_id  发表于 2013-3-13 23:08
大獅子 我努力研究後知道事件ID70的Y座標寫法是 $game_map.events[70].y 那有辦法把"70"改成"這個事件"嗎?? 這樣我就不用每個事件都改了 ^ ^"   发表于 2013-3-13 22:41
感謝你大獅子~ 我好好認真讀一下事件大全!!  发表于 2013-3-13 20:12
您或許可以看看這個,vx 或 xp 的事件大全,其實 vxa 也用得上:http://bbs.66rpg.com/thread-166706-1-1.html  发表于 2013-3-13 18:53
$game_map.events[編號].x,$game_map.events[編號].y  发表于 2013-3-13 18:51
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
200
在线时间
120 小时
注册时间
2007-8-17
帖子
147
5
发表于 2013-3-13 20:25:18 | 只看该作者
那个区域每个格子都放个宝箱

每个宝箱第一页事件开关 随机打开   打开的出现第二页的宝箱

点评

這是好方法 只是這樣地圖會充滿事件...謝謝^_^  发表于 2013-3-13 21:09
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21850
在线时间
9439 小时
注册时间
2012-6-19
帖子
7120

开拓者短篇九导演组冠军

6
发表于 2013-3-14 12:55:27 手机端发表。 | 只看该作者
同大狮子说的
设置一个循环随机X、Y坐标,判定该坐标的地形标志,如果为1则把宝箱移过去同时跳出循环
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

7
发表于 2013-3-14 20:30:41 | 只看该作者
本帖最后由 Sion 于 2013-3-16 22:41 编辑

@a000b1745 编辑了,不会移动到玩家和事件(不允许穿透)的位置。

在事件中插入脚本:
  $game_map.set_random_event(event_id, region)
    event_id是要移动的事件id
    region是移动到的区域id

事件移动后,独立开关D会开启。

例如:$game_map.set_random_event(4, 7)就是将4号事件随机移动到区域7中

需要设置宝箱的话,就把宝箱的第一页出现条件设置为独立开关D开启,
这样宝箱在移动之前不会显示在地图上。
  1. class Game_Map
  2.   #--------------------------------------------------------------------------
  3.   # ● 将指定事件随机移动到指定区域
  4.   #--------------------------------------------------------------------------
  5.   def set_random_event(event_id, region)
  6.     return msgbox("要移动的事件不存在") if @events[event_id].nil?
  7.     coordinates = []
  8.     for map_x in 0..width
  9.       for map_y in 0..height
  10.         coordinates.push([map_x, map_y]) if region_id(map_x, map_y) == region &&
  11.           !@events[event_id].collide_with_characters?(map_x, map_y)
  12.       end
  13.     end
  14.     return msgbox("无法移动。检查区域设置;区域是否被事件、玩家占据。") if coordinates.empty?
  15.     xy = coordinates[rand(coordinates.size)]
  16.     @events[event_id].moveto(xy[0], xy[1])
  17.     $game_self_switches[[@map_id, event_id, "D"]] = true #不想在移动后开启独立开关就删掉这行
  18.   end
  19. end
复制代码

点评

十分感謝你... 這腳本真的精簡厲害又實用!!  发表于 2013-3-17 00:06
那個...再請問一下... 如何才能讓指定的多個事件不重疊在同一格上>"<?? 有時候3.4個事件會剛好疊在同一格...(汗)  发表于 2013-3-16 21:55
哇 感謝你。 這是很方便的方法,我回去好好研究研究!! 不然我的事件頁可大串的呢>"<  发表于 2013-3-14 20:41

评分

参与人数 2星屑 +22 收起 理由
j433463 + 10 塞糖
喵呜喵5 + 12 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
105
在线时间
313 小时
注册时间
2013-2-24
帖子
85
8
发表于 2013-3-15 09:38:21 手机端发表。 | 只看该作者
我也有一個問題
我先把第頁事件設透明,第二,三頁設事件,當隨機數是1時第一頁,隨機數是2時第二頁,但進入地圖時太近事件,事件會突然出現相當突兀,而遠一點進入地點出現就正常多,各大大有沒有方法解決?

点评

我都會在第一頁(看妳在哪頁事件會顯示)的時候幫這事件加入一個動畫(也就士技能的特效)!! 在地圖上做一個小一點的  发表于 2013-3-15 10:05
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
340
在线时间
31 小时
注册时间
2013-1-17
帖子
12
9
发表于 2013-3-15 22:26:19 | 只看该作者
我也想引入隨機寶箱的系統, 可是不知道該怎樣處理寶箱變成路障的問題 --- 假設地圖可以隨機4個或以上的寶箱, 便有機會完全封住道路
不知道各位大大會怎樣解決?

点评

那當然你在設置這些寶箱位置就該注意是不是有封住道路的狀況囉@@!! 只要位置設對了你用哪種方法都是可行的^_^  发表于 2013-3-16 09:47
参考7楼大大的脚本以及本帖主题,让随机宝箱只在地图标记为1的指定的位置里随机确保不会挡住路不就可以了  发表于 2013-3-15 22:54
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-28 09:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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