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

Project1

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

[已经过期] 脚本定制第1轮 ♠ 已完结,新活动计划中

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
637
在线时间
164 小时
注册时间
2012-4-18
帖子
264
1
发表于 2013-10-17 11:22:07 | 显示全部楼层
本帖最后由 Sion 于 2013-10-17 12:17 编辑

好霸气的大神。正好我遇到个难题至今未解,前来求教~~~~~~
就像我的帖子:http://rpg.blue/thread-335835-1-1.html 之中说到的一样,我希望能够在金币窗口显示身上某些道具的数量(目前是两个)来作为增加的货币使用。就像魔兽世界的正义,勇气,征服点数那样的货币。
以此衍生,可以额外添加一个菜单选项和对应的菜单页面(暂时命名为货币页面),将包括金币在内的各种扩展货币都显示在里面。形成类似魔兽世界的货币页面一样的东西。
但是由于技术有限,目前只完成了我发的帖子里面的效果,读不出变量:$game_party.item_number(83)的值。
之所以要做成显示身上物品数这个效果是因为这样可以比较方便的设置掉落,以及使扩展货币的种类不受限制。同时我还是用了另一个物品分类脚本,通过修改使这些设置为扩展货币的物品不在包包中显示,也正是应为不在包包中显示所以也就需要另开显示他们的窗口,一开始想到的就是金币窗口了,于是拉长的金币窗口,做成了如图效果。

回来附上使用的物品种类扩充脚本。


RUBY 代码复制
  1. #==============================================================================
  2. #  功能:[RMVA]增加物品栏类别
  3. #  作者:ScottyFan
  4. #  版本:v1.0 2013.8.8
  5. #  使用说明:
  6. #         在数据库-物品(包括装备)-备注 里写入 @itype[位置编号]
  7. #         新的物品分类编号是从 1 开始。比如 @itype[1]或者@itype[2]
  8. #==============================================================================
  9. module SFS
  10.   CATEGORY = [   #格式["显示名称", :标识],  标识随便写,不重复即可
  11.     ["",     :default], #注意,不要更改此行
  12.     ["消耗", :potion],  #此处为编号1
  13.     ["货币", :money],   #此处是在背包中隐藏
  14.     ]
  15. end
  16.  
  17. class RPG::BaseItem
  18.   attr_reader   :category_id
  19.   def category_id
  20.     return if self.is_a?(RPG::Skill)
  21.     if @category_id.nil?
  22.       /@itype\[(.+?)\]/ =~ @note
  23.       @category_id = $1.to_i
  24.     end
  25.     @category_id
  26.   end
  27. end
  28.  
  29.  
  30. class Window_ItemCategory
  31.   #--------------------------------------------------------------------------
  32.   # ● 生成指令列表
  33.   #--------------------------------------------------------------------------
  34.   def make_command_list
  35. #    SFS::CATEGORY.each do |itype|
  36. #      next if itype[1] == :default
  37. #      add_command(itype[0],  itype[1])
  38. #    end
  39.     add_command("消耗",     :potion)
  40.     add_command("材料",     :item)
  41.     add_command(Vocab::weapon,   :weapon)
  42.     add_command(Vocab::armor,    :armor)
  43.     add_command(Vocab::key_item, :key_item)
  44.   end
  45. end
  46.  
  47.  
  48. class Window_ItemList
  49.   #--------------------------------------------------------------------------
  50.   # ● 查询列表中是否含有此物品
  51.   #--------------------------------------------------------------------------
  52.   def include?(item)
  53.     if item && item.category_id > 0 #如果是特殊类别
  54.       return @category == SFS::CATEGORY[item.category_id][1]
  55.     end
  56.     case @category   
  57.     when :item
  58.       item.is_a?(RPG::Item) && !item.key_item?
  59.     when :weapon
  60.       item.is_a?(RPG::Weapon)
  61.     when :armor
  62.       item.is_a?(RPG::Armor)
  63.     when :key_item
  64.       item.is_a?(RPG::Item) && item.key_item?
  65.     else
  66.       false
  67.     end
  68.   end
  69. end


点评

这个论坛里应该有第二货币之类的脚本,还有在窗口上显示变量的教程,搜索一下应该就搞定了。还有问题请私信联系我。  发表于 2013-10-17 12:21
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
637
在线时间
164 小时
注册时间
2012-4-18
帖子
264
2
发表于 2013-10-17 22:03:59 | 显示全部楼层
salvareless 发表于 2013-10-17 11:22
好霸气的大神。正好我遇到个难题至今未解,前来求教~~~~~~
就像我的帖子:http://rpg.blue/thre ...

刚才看了喵呜喵5回复的我的帖子,原来我调用变量那句没写对,再结合你给的提示,我想我知道怎么去写那个页面了,3Q大神。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
637
在线时间
164 小时
注册时间
2012-4-18
帖子
264
3
发表于 2013-10-31 10:18:51 | 显示全部楼层
本帖最后由 Sion 于 2013-11-1 10:12 编辑

我错了,想我这种奇葩脚本,我就应该直接来这里求的,提问区的回答…………哎…………

说正经的,我想定制一个双持职业平砍时左右手分别计算伤害的脚本,诶·可能会和由于加载了横版战斗,也许可能还会和横版有冲突吧。
总之就是盗贼两手都有武器,而且一般情况下两手的武器肯定不同,所以为求完美希望有一个左右手分别计算伤害的脚本,让游戏更加合理。
如果有办法实现的话就好了~~~~~3Q


————————————— Edited by Sion ——————————————
RUBY 代码复制
  1. class Game_Actor
  2.   alias_method :param_plus_20131101, :param_plus
  3.   def param_plus(param_id)
  4.     param_id == 2 ? attack_plus(super) : param_plus_20131101(param_id)
  5.   end
  6.   def attack_plus(atk)
  7.     equips.each_with_index {|equip, i|
  8.       next unless equip;
  9.       atk += case i
  10.       when 1; equip.params[2].fdiv(2); #修改第二个装备位置的攻击力计算公式,目前是变成一半
  11.       else    equip.params[2]
  12.       end
  13.     }
  14.     return atk.round
  15.   end
  16. end

点评

好像有点误解,如果要修改技能里的公式,在Game_Actor 里添加获取对应数据的方法再应用到公式中就可以。  发表于 2013-11-1 10:32
这个小改一下就行了,自己熟悉下脚本吧。我对默认战斗这一块不了解,也是刚搜索出来的。  发表于 2013-11-1 10:13
你这个伤害要用什么作为实际攻击力来计算?  发表于 2013-10-31 21:17
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
637
在线时间
164 小时
注册时间
2012-4-18
帖子
264
4
发表于 2013-11-1 11:23:43 | 显示全部楼层
salvareless 发表于 2013-10-31 10:18
我错了,想我这种奇葩脚本,我就应该直接来这里求的,提问区的回答…………哎…………

说正经的,我想定制 ...

这个= =应该是装备的时候副手的武器只计算一半的攻击力到总攻击力上的意思吧。

sion大神看来你确实误解了我的本意,也许是我表达不清吧= =。我的意思是,双持职业平砍的时候不是要砍两刀么。第一刀用“总攻击力-左手武器攻击力”计算(右手攻击),第一刀用“总攻击力-右手武器攻击力”计算(左手攻击)。相当于魔兽里的盗贼捅人的时候有时候用左手有时候用右手这种感觉~~~~

不过这个折合副手攻击力的脚本,倒是真没想到,先谢谢了,继续求教。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
637
在线时间
164 小时
注册时间
2012-4-18
帖子
264
5
发表于 2013-11-1 12:00:29 | 显示全部楼层
本帖最后由 salvareless 于 2013-11-1 12:42 编辑

话说我突然有个想法,不知道能不能这么弄。

首先,在默认的普通攻击脚本那里添加一行判断,判断是不是双持职业(或者判断角色职业ID也行),如果是使用“攻击”的时候不发动1号技能,而是用另一个技能(例如100号技能)。
class Game_Action

  #--------------------------------------------------------------------------
  # ● 设置普通攻击
  #--------------------------------------------------------------------------
  def set_attack
    if 双持职业(或者职业ID)
      使用100号技能
    else
      set_skill(subject.attack_skill_id)
    end
    self
  end

end

然后100号技能的设置和1号技能一样,只不过技能公式那一栏空白。

然后在横版战斗里面定义一种新的技能施展类型。并将这种技能的其他地方设置成和普通攻击一样,只有伤害计算部分另外写成下面这样。


class SideView
  def skill_action
    case skill_id # スキルIDで指定
    when 1 # スキル1番は通常攻撃なので、上の武器アクションを実行します
      return weapon_action
      ………………
    when 100
      return "双持平砍"
    end
end


然后把下面这个定义加到横版设定的合适位置。

"计算左手武器伤害"        => [造成伤害=(总攻击力-右手武器攻击)*(1-(目标防御/目标防御+目标幸运*4+400)),]
"计算右手武器伤害"        => [造成伤害=(总攻击力-左手武器攻击)*(1-(目标防御/目标防御+目标幸运*4+400)),]

"双持平砍"        => ["敵前移動","コラプス禁止","個別開始","武器振りL","计算左手武器伤害","対象アニメ武器LWT","武器振りR","计算右手武器伤害","死亡確認","対象アニメ武器WT","個別終了","コラプス禁止解除","次の行動者へ","座標リセットカーブ" ]

不知道这种想法对不对,还有就是代码的完善。让我改代码还可以,让我自己写就= =捉襟见肘了。

发上来之后才想到,还可以这样。就是不知道能不能行得通。

还只判断是不是二刀,如果是,返回100号技能和101号技能,就是二刀的平砍相当于同时发动两个技能。不知道能不能这么做。
100号技能的伤害公式是(总攻击力-右手武器攻击)*(1-(目标防御/目标防御+目标幸运*4+400))
101号技能的伤害公式是(总攻击力-左手武器攻击)*(1-(目标防御/目标防御+目标幸运*4+400))

然后还是定义动画
    when 100
      return "双持平砍左"
    when 101
      return "双持平砍右"

然后定义
"双持平砍左"        => ["敵前移動","コラプス禁止","個別開始","武器振りL","计算伤害","対象アニメ武器LWT","死亡確認",]       #左手砍了不回原位,除非砍死了
"双持平砍右"        => ["武器振りR","计算伤害","死亡確認","対象アニメ武器WT","個別終了","コラプス禁止解除","次の行動者へ","座標リセットカーブ" ]       #右手砍了再回原位

这是一种神奇的想法,不知道现实不现实啊。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
637
在线时间
164 小时
注册时间
2012-4-18
帖子
264
6
发表于 2013-11-2 00:19:33 | 显示全部楼层
诶= =我在另两张帖子里,在tan12345和喵呜喵5的帮助下捣鼓出来了…………………………
发上连接给有同样需要的人看吧。
http://rpg.blue/thread-337421-1-1.html
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-12 09:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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