Project1

标题: 關於wyongcan2008的装备强化系统,代碼小疑問..!! [打印本页]

作者: a000b1745    时间: 2013-11-22 01:37
标题: 關於wyongcan2008的装备强化系统,代碼小疑問..!!
腳本作者:
wyongcan2008
腳本出處:
http://rpg.blue/thread-220914-1-1.html


關於這個腳本...小的有些疑惑懇請版上大大們幫忙 >"<
腳本有提供一個代碼 Equipplus.gainequip( X , Y )
X=武器ID,Y=魔法屬性的數量

但這代碼只有提供武器這方面的,想請問能否再添加一個給防具用的代碼呢??
( 腳本101行 把 WEAPONS 改成 ARMORS 可做到,但就沒有給武器的代碼了... 能否兩者分別都有各自的代碼?? )

延伸一問 ~ 在這個代碼 Equipplus.gainequip( X , Y ) 有辦法偵測玩家給NPC 的武器ID,然後給予對應的武器嗎??
譬如 跟魔法武器 NPC對話↓

主角:"我要增加魔法屬性"
魔法NPC:"請選擇一把給我,我給你附上3種魔法屬性。"

出現玩家身上有的武器選項 (視窗、道具欄等...任何形式皆可)

假設選擇 武器ID 5號 NPC就會自動執行 Equipplus.gainequip( 5 , 3 )
       選擇 武器ID 9號 NPC就會自動執行 Equipplus.gainequip( 9 , 3 )  依此類推。

我目前用土方法(事件)來解決...60個武器弄得頭快暈了...不知版上有沒有大大有更好的方法??

擷取.JPG (59.75 KB, 下载次数: 35)

擷取.JPG

作者: tan12345    时间: 2013-11-22 11:53
首先,防具也是有随机的,你可以测试(比如商店购买随机=true然后跑去买7、8件防具就知道了)。
其次,你可以这样操作:将武器ID赋值到变量X,然后Equipplus.gainequip( 变量X , 3 )
作者: a000b1745    时间: 2013-11-22 17:39
tan12345 发表于 2013-11-22 11:53
首先,防具也是有随机的,你可以测试(比如商店购买随机=true然后跑去买7、8件防具就知道了)。
其次,你可 ...

Equipplus.gainequip($data_armors[X],Y)
報錯...
'Game_Interpreter' 1412 -TypeError...估計不能那樣寫 >"<

作者: a000b1745    时间: 2013-11-23 02:29
那假如我想用另一個比較簡單的方法來判斷 不知這樣腳本該怎寫??
就是改用玩家必須讓隊伍一號成員穿上他想附上魔法的裝備,再讓 NPC 去判斷。

"偵測隊伍一號玩家所持武器(type=0)、防具(type 1~7 有加裝備擴張 )的ID"
然後NPC詢問玩家要哪個部位的武器/防具 上魔法屬性,再去判定

if 玩家選了 type=0 .則偵測 weapons ID 帶入變數X 並且 Equipplus.gainequip( 变量X , 3 )
   type=1~7 偵測 armors ID 帶入變數X 並且 Equipplus.gainequip( armors[变量X] , 3 )

這樣有辦法實現嗎??{:2_275:}

作者: tan12345    时间: 2013-11-23 16:08
a000b1745 发表于 2013-11-22 17:39
Equipplus.gainequip($data_armors[X],Y)
報錯...
'Game_Interpreter' 1412 -TypeError...估計不能那樣寫 ...


试试以下2行代码:(注意在事件脚本框里脚本过长的回车方式)
$game_party.gain_item(
Equipplus.getnewequip(
$data_armors[2],),1,true)


$game_party.gain_item(
Equipplus.getnewequip(
$data_weapons[62],),1,true)

作者: tan12345    时间: 2013-11-23 16:20
请原谅我的连贴,这个是回答另外一个问题的。
首先你可以把需要添加前缀的装备放到背包(也就是卸载使其出现在物品栏)里;
其次你需要了解一个功能:事件里的第一个页签的物品选择处理

他可以使用指定变量来存储选择的物品(默认脚本只能处理物品选择,处理不了武器、防具的选择)
接着你需要一个脚本,脚本是拿来改变默认脚本只能处理物品选择,处理不了武器、防具的,脚本代码如下:
  1. #==============================================================================
  2. # ■ 物品选择处理扩张
  3. #    作者:影月千秋
  4. #------------------------------------------------------------------------------
  5. # ● 用途
  6. #    物品选择处理允许选择武器、防具、普通物品
  7. #------------------------------------------------------------------------------
  8. # ● 使用方法
  9. #    安装此脚本后,在事件中物品选择处理之前加上一句脚本:
  10. #    mca_change(symbol)
  11. #    其中symbol是【:item】【:armor】【:weapon】之一,分别对应物品、防具、武器
  12. #    这样的话,这一个物品选择处理就会处理对应项目
  13. #    但是注意!!该脚本的作用域只有一个物品选择处理
  14. #    如果连续使用两个物品选择处理,第一个会是对应项目,第二个则会是关键物品
  15. #------------------------------------------------------------------------------
  16. # ● 本脚本作者为【影月千秋】,保留原作者前提下,允许一切商业或非商业使用
  17. #==============================================================================

  18. #==============================================================================
  19. # ■ MoVar
  20. #==============================================================================
  21. module MoVar
  22.   @ckiaddition = :key_item
  23. end
  24. #==============================================================================
  25. # ■ Game_Interpreter
  26. #==============================================================================
  27. class Game_Interpreter
  28.   def mca_change(symbol)
  29.     if symbol == :item || :armor || :weapon
  30.       MoVar.instance_variable_set("@ckiaddition", symbol)
  31.     else
  32.       raise "错误!mca_change(#{symbol})的参数应是【:item|:armor|:weapon】!"
  33.     end
  34.   end
  35. end
  36. #==============================================================================
  37. # ■ Window_KeyItem
  38. #==============================================================================
  39. class Window_KeyItem
  40.   def category=(category)
  41.     @category = MoVar.instance_variable_get("@ckiaddition") rescue category
  42.     MoVar.instance_variable_set("@ckiaddition", category)
  43.     refresh
  44.     self.oy = 0
  45.   end
  46.   def enable?(item);true;end
  47. end
复制代码
最后,你需要学会用语句做到丢失无属性的装备以及获得有属性的新装备:
丢弃武器:$game_party.gain_item($data_weapons[武器id], -1, true)
丢弃防具:$game_party.gain_item($data_armors[防具id], -1, true)
获得有属性的新装备的脚本在楼上,我就不写了。
作者: 1091160905    时间: 2013-11-23 19:49
这个不错,我也拿去用用,嘻嘻嘻嘻 这个可不是水贴哦我也是玩VA的,不行可以看我空间
作者: a000b1745    时间: 2013-11-24 00:07
本帖最后由 a000b1745 于 2013-11-24 03:08 编辑

那請問一下...
指定 ACTOR[1]腳色 丟掉他的 TYPE[1] 的裝備該怎麼寫這腳本呢??
(丟掉是指"刪除" ~ 而非卸下放回背包內。)

---------------------------------------經過一整晚熬夜東看西看代碼後終於.....↓

傻傻的解決方法:

1.先給武器ID上變數X
$game_variables[X]= $game_actors[12].weapons[0].id
2.把這武器給卸下
$game_actors[12].change_equip_by_id(0,0)
3.再把變數X的武器給丟了!!
$game_party.gain_item($data_weapons[$game_variables[X]], -1, true)
{:2_279:}




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