Project1

标题: 弱弱的問一個腳本,如何將身上裝備ID帶入某一變數?? [打印本页]

作者: a000b1745    时间: 2013-11-23 11:05
标题: 弱弱的問一個腳本,如何將身上裝備ID帶入某一變數??
本帖最后由 a000b1745 于 2013-11-23 15:33 编辑

譬如我要判定角色12 身上的武器ID 帶入一個變數,要如何實現??
$game_actors[12].weapon_id == $game_variables[85]    <---(失敗的範例、正確該怎寫呢...)

如果不是武器是裝備,那個 TYPE位置 又該怎麼插入??

我的想法是這樣、應該會出現兩個變數、第一個 [變數84] 是來指定TYPE的,
[變數85] 是來讓我要的裝備ID帶進去的、也就是腳本給我的結果。

也就是說我要先提供這個腳本我要判定位置為頭盔 我給他 [變數84] = 1
然後事件執行 代碼 就會給我 頭盔 的防具ID,也就是 [變數85] 。

請教這樣的腳本該如何寫呢{:2_276:}  

作者: 喵呜喵5    时间: 2013-11-23 11:50
  1. $game_party.members.each do |actor|
  2. #~ if !actor.equips[0] and !actor.dual_wield?
  3. #~ p actor.name.to_s + "没拿武器"
  4. #~ next
  5. #~ end
  6. #~ p actor.name.to_s + "的武器ID是:"
  7. p actor.equips[0].id if actor.equips[0]
  8. #~ next if !actor.dual_wield?
  9. #~ p "以及" if actor.equips[0]
  10. p actor.equips[1].id if (actor.equips[1].etype_id == 0)
  11. end
复制代码
另外赋值操作是一个等号不是你那个失败范例中的两个等号
作者: dukesward    时间: 2013-11-23 11:59
$game_actors[i].weapons[0]直接获取角色i的武器(双持的情况为$game_actors[i].weapons[0]和$game_actors[i].weapons[1]),然后$game_actors[i].weapons[0].id获取武器id,如果是防具则$game_actors[i].armors获取防具数组,或者直接$game_actors[i].equips[slot_id],通过装备栏id来获取相应装备
作者: a000b1745    时间: 2013-11-23 15:20
本帖最后由 a000b1745 于 2013-11-23 15:29 编辑
dukesward 发表于 2013-11-23 11:59
$game_actors.weapons[0]直接获取角色i的武器(双持的情况为$game_actors.weapons[0]和$game_actors.weapon ...


可是我這樣寫...他不會把 ID代入變數85耶??
$game_actors[1].weapons[0].id = $game_variables[85]

難道不是這樣嗎{:2_258:}

-------------------------------------三分鐘後...

$game_variables[85] = $game_actors[1].weapons[0].id
原來是這樣 寫反了(糗...)

作者: a000b1745    时间: 2013-11-24 03:51
dukesward 发表于 2013-11-23 11:59
$game_actors.weapons[0]直接获取角色i的武器(双持的情况为$game_actors.weapons[0]和$game_actors.weapon ...

可是如果武器欄是空的會報錯
if $game_actors[12].equip(0, nil) == true 這樣寫法也不對

想請問沒裝武器/防具下如何讓 變數X=0??
作者: dukesward    时间: 2013-11-24 04:42
假设X是变量,X = $game_actors[i].weapons.empty? ? 0 : $game_actors[i].weapons[0].id
当角色装备武器的时候变量X代入武器id,没装备的时候X代入0
作者: a000b1745    时间: 2013-11-24 10:46
dukesward 发表于 2013-11-24 04:42
假设X是变量,X = $game_actors.weapons.empty? ? 0 : $game_actors.weapons[0].id
当角色装备武器的时候变 ...

疑...可是為什麼不能直接把WEAPON換成equips[1]呢??
那這樣如果是TYPE 1 裝備的位置該怎麼判斷他是不是空的??

$game_variables[X] = $game_actors.equips[1].empty? ? 0 : $game_actors.equips[1][0].id
失敗...{:2_271:}
作者: a000b1745    时间: 2013-11-24 12:11
dukesward 发表于 2013-11-24 04:42
假设X是变量,X = $game_actors.weapons.empty? ? 0 : $game_actors.weapons[0].id
当角色装备武器的时候变 ...

$game_variables[X] = $game_actors.equips.empty? ? 0 : $game_actors.equips[1].id
可以抓到裝備 Type 1 的變數了~ 但是在沒裝備的時候會報錯...
可是我都照著X = $game_actors.weapons.empty? ? 0 : $game_actors.weapons[0].id的方法寫了...
作者: dukesward    时间: 2013-11-24 13:30
注意是$game_variables[X] = $game_actors[id].equips.empty? ? 0 : $game_actors[id].equips[0].id, 比如角色id是1就是$game_variables[X] = $game_actors[1].equips.empty? ? 0 : $game_actors[1].equips[0].id,注意在事件里用的时候把game_actors[id]放在同一行否则会出错。如果再不行就把错误信息贴出来。
作者: a000b1745    时间: 2013-11-24 13:44
dukesward 发表于 2013-11-24 13:30
注意是$game_variables[X] = $game_actors.equips.empty? ? 0 : $game_actors.equips[0].id, 比如角色id是1 ...

武器那邊是沒問題的!
就算不裝備武器變數85 也會自動 = 0

...但是防具不裝備就報錯了。

擷取2.JPG (27.62 KB, 下载次数: 33)

擷取2.JPG

擷取.JPG (18.04 KB, 下载次数: 39)

擷取.JPG

作者: dukesward    时间: 2013-11-24 14:16
是这样的,因为你并非获取第一项防具的id(equips[1]获取的是第二项防具),所以不能用empty方法判断防具是否装备。你要这么写:$game_variables[X] = $game_actors[id].equips[i] ? $game_actors[id].equips[i].id : 0, 其中equips[i]对应第几项防具,比如你这里用的是equips[1],只有当i=0的时候才可以用empty?方法判断。
作者: a000b1745    时间: 2013-11-24 15:13
本帖最后由 a000b1745 于 2013-11-24 15:30 编辑
dukesward 发表于 2013-11-24 14:16
是这样的,因为你并非获取第一项防具的id(equips[1]获取的是第二项防具),所以不能用empty方法判断防具是 ...


我好奇地問一下...我只要這樣寫↓
$game_actors[12].change_equip(0, nil)
$game_actors[12].change_equip(1, nil)
都可以順利的把該部位的裝備卸下,
$game_actors[12].change_equip_by_id(1, 4) 也可以換上背包內的4號頭盔~

可是為什麼我打
$game_actors[12].change_equip_by_id(1, $game_variables[108])  她不會把 ID=變數108的號頭盔給換上呢??
(沒報錯、角色身上也確實有那個ID的裝備、但是執行腳本後完全沒動作...)




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