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

Project1

 找回密码
 注册会员
搜索
楼主: 灯笼菜刀王
打印 上一主题 下一主题

[原创发布] 菜鸟版绿色装备耐久系统

[复制链接]

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
11
 楼主| 发表于 2018-4-6 20:55:54 | 只看该作者
本帖最后由 灯笼菜刀王 于 2018-4-6 20:58 编辑
1696993583 发表于 2018-4-6 17:58
你把铜剑和铁剑的价格都设置为 100010 就会发生很神奇的一幕...
  另外就是耐久无法设置为个位数...设置 ...


  负数情况是我没考虑到 耐久一次扣太多会超过0.....   

在def 损坏   那里 把武器和防具的   == 0  换成   <= 0 就OK啦

不会换就复制

def 损坏 整段换成  下面的就OK了

RUBY 代码复制
  1. def 损坏
  2.     f = self.armorid
  3.     if @durable[0] <= 0
  4.      @weapon_id = 0
  5.      @durable[0] = 0
  6.     end
  7.     for i in 1..4
  8.       if @durable[i] <= 0
  9.         f[i-0] = 0
  10.         @durable[i] = 0
  11.       end
  12.     end
  13.     @armor1_id = f[0]
  14.     @armor2_id = f[1]
  15.     @armor3_id = f[2]
  16.     @armor4_id = f[3]
  17.   end


果然这玩意一个没考虑到就会出问题, 就像我说的自作孽,  无法驾驭脚本还是别玩这种了.......


至于其他的, 个位数, 价格设置一样什么的, 都不存在问题,我这里实验是都OK, 其实, 装备只是用名字判断而已, 其他的可以随便你设置, 只要名字相同, 内容完全不一样也可以, 也就是说这个也可以做成"随机品质", "破烂中随机出极品" 这类的装备=3=...

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
209
在线时间
23 小时
注册时间
2018-3-10
帖子
31
12
发表于 2018-4-6 21:32:58 | 只看该作者
不过... 你到底有没有修改一下价格再测试脚本啊!反正目前BUG好多啊!基本上砍一刀就出BUG.

wt4.PNG (15.31 KB, 下载次数: 21)

简直了

简直了
只能做成火柴人的了.
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
13
 楼主| 发表于 2018-4-6 22:22:08 | 只看该作者
本帖最后由 灯笼菜刀王 于 2018-4-6 22:23 编辑
1696993583 发表于 2018-4-6 21:32
不过... 你到底有没有修改一下价格再测试脚本啊!反正目前BUG好多啊!基本上砍一刀就出BUG.  ...


这些就是我之前说的"无数 里麻烦 " , 这个是写脚本的时候没考虑周全出现的

原因是:敌人没有定义durable的属性,  解决方法 : 所有涉及到battler的地方都用一个
if battler.is_a?(Game_Actor)  圈起来; 或者给敌人也加个durable属性

因为改动这种涉及的范围不少, 所以还是能自己驾驭脚本在来用吧.

这个脚本原理非常简单, 能用好它的人都可以自己写出来,

虽然原理简单,但是要插件化却花了我相当多的时间, 极不划算, 不再进行售后服务了, 要用的话自己学会处理这些小问题把

奥义: 不负责任遁
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1358
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
14
发表于 2018-4-6 22:32:51 | 只看该作者
灯笼菜刀王 发表于 2018-4-6 22:22
这些就是我之前说的"无数 里麻烦 " , 这个是写脚本的时候没考虑周全出现的

原因是:敌人没有定 ...

既然已知异常,怎么不试试用rescue修饰符解决掉了。半残品多可惜

点评

= = 汗, 回头看了下还真是我的问题....... 不好意思  发表于 2018-4-6 22:44
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
15
 楼主| 发表于 2018-4-6 22:36:04 | 只看该作者
夜狠简单 发表于 2018-4-6 22:32
既然已知异常,怎么不试试用rescue修饰符解决掉了。半残品多可惜

你可以看看我的脚本, 我可是有好好区分Game_Battler最后的伤害结算的=3=

他估计是有用什么战斗脚本, self.damage部分被多次引用造成的吧.
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
16
 楼主| 发表于 2018-4-6 22:49:35 | 只看该作者
1696993583 发表于 2018-4-6 21:32
不过... 你到底有没有修改一下价格再测试脚本啊!反正目前BUG好多啊!基本上砍一刀就出BUG.  ...


汗, 原本以为是脚本冲突,  原来是我复制后忘记改词造成的  class Game_Battler 类整个替换就行  原因是 后面想添加无限耐久的时候,复制过来的 attacker没改成self....

RUBY 代码复制
  1. class Game_Battler
  2.   alias xoxo_attack_effect attack_effect
  3.   def attack_effect(attacker)
  4.     xoxo_attack_effect(attacker)
  5.     if attacker.is_a?(Game_Actor)
  6.       if self.damage != "MISS"
  7.          attacker.durable[0] -= XOXO::NORMAL_ATTACK if attacker.durable[0] != 99
  8.          attacker.损坏
  9.       end
  10.     end
  11.     if self.is_a?(Game_Actor)
  12.       if self.damage != "MISS"
  13.         for i in 1..4
  14.          self.durable[i] -= XOXO::NORMAL_DAMAGE if self.durable[i] != 99
  15.         end
  16.         self.损坏
  17.       end
  18.     end
  19.   end
  20.   alias xoxo_skill_effect skill_effect
  21.   def skill_effect(user, skill)
  22.     xoxo_skill_effect(user, skill)
  23.     if user.is_a?(Game_Actor)
  24.       if self.damage != "MISS"
  25.          user.durable[0] -= XOXO::SKILL_ATTACK if user.durable[0] != 99
  26.          user.损坏
  27.       end
  28.     end
  29.     if self.is_a?(Game_Actor)
  30.       if self.damage != "MISS"
  31.         for i in 1..4
  32.          self.durable[i] -= XOXO::SKILL_DAMAGE if self.durable[i] != 99
  33.         end
  34.         self.损坏
  35.       end
  36.     end
  37.   end
  38. end


回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
13635
在线时间
3851 小时
注册时间
2013-7-18
帖子
2313
17
发表于 2018-4-7 11:58:57 | 只看该作者
不错,只是有两个问题,1,价格不能超过9999了?2,商店买的时候只能一个一个买了...
山岚野人,快人快语,礼数不周,还望海涵....
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
18
 楼主| 发表于 2018-4-7 12:13:42 | 只看该作者
本帖最后由 灯笼菜刀王 于 2018-4-7 12:16 编辑
y967 发表于 2018-4-7 11:58
不错,只是有两个问题,1,价格不能超过9999了?2,商店买的时候只能一个一个买了... ...


1, 要涨价很容易呗, 标价随便乘上个系数就好了, 比如 价格X耐久

因为价格只是商店用, 所以没有啥大问题,设定上就可以解决.

2, 武器防具你一下买几麻袋想干嘛? 当饭吃? 正常人通常只买一件吧

药品是可以99瓶一起买的
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
209
在线时间
23 小时
注册时间
2018-3-10
帖子
31
19
发表于 2018-4-7 14:15:19 | 只看该作者
我就不想说什么了...问题都在这里面.

问题啊.rar

192.32 KB, 下载次数: 50

只能做成火柴人的了.
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
20
 楼主| 发表于 2018-4-7 14:33:56 | 只看该作者
本帖最后由 灯笼菜刀王 于 2018-4-7 14:49 编辑
1696993583 发表于 2018-4-7 14:15
我就不想说什么了...问题都在这里面.


那是当然的,你不按我设置的来

# 获取武器的方法: $game_party.入手("铁剑") 记得双引号别丢
# 获取防具的方法: $game_party.入手("帽子",1)
# 丢弃武器的方法: $game_party.丢弃("铁剑")
# 丢弃防具的方法: $game_party.丢弃("帽子",1)
# 持有XX武器数量: $game_party.持有("铁剑")
# 持有XX防具数量: $game_party.持有("帽子",1)
# 全身修理: $game_party.actors[队伍位数].全修

要得到武器, 就要用事件脚本这样写 :  $game_party.入手("铁剑")

要得到两把铁剑,要这样写   $game_party.入手("铁剑")
                                          $game_party.入手("铁剑")

要三把, 就这样写  $game_party.入手("铁剑")
                            $game_party.入手("铁剑")
                            $game_party.入手("铁剑")

要十把, 你的格子就写不下了  ,当然,  懂脚本的会这样写   

i = 0
while i < 10
$game_party.入手("铁剑")
i += 1
end

-----------------------------------------------

默认的事件按钮只能用来获取道具, 否则就是耐久1, 而且你获得两把就会变耐久2

同样的, 敌人的掉落也不能是装备(要装备就用战斗结束后公共事件获得, 或者自己改战利品获得脚本)

其次,你没按我说的, 设置10个同样名字的装备, 这样做的目的就是我在你帖子里说的"让装备不出现同样ID", 借此形成"伪独立"状态, 上面用事件脚本获得的同样名字的装备,其实在数据库里是不一样的, 我通过脚本控制让它在达到上限之前不会出现同样的ID装备.

这东西不懂原理的话就是会问题一大堆, 所以斑竹不是说了, 不要使用超过自己等级所能接受的系统.

最后,舰R是 战舰少女R, 我在玩的一款舰娘卡片收集类手游, 由于脑洞突开, 让我决定把它改造成 火焰之纹章式SRPG. 目前还在进度中,只完成了战斗系统框架. 耐久系统也是我在制作过程中思考过的实现方法,虽然我采用的不是这个脚本的方法而是在你帖子里说的"第二种方法"(这个就是和你说的"第一种方法")

由于是同人圈作品,所以我没在这里发 帖子在贴吧
https://tieba.baidu.com/p/5632722323?pn=1
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 15:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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