Project1

标题: 角色自身防御力、魔防 及其他 [打印本页]

作者: 89444640    时间: 2017-12-27 16:03
标题: 角色自身防御力、魔防 及其他
整理工程混乱的数据库,发现数rmxp限制还真多,都已经影响到道具设定了。
我搜了一下论坛,关键词太长,没找到相关帖子。

请问,是否已经有脚本可以实现 如下效果

角色随着等级提升增加自身防御、魔防。

物品在数据库设定中的售价超可以过9万9千999。

角色属性+防具提升总计可以超过999。

如果没有的话,请如是否需要目前使用脚本以便修改?
非常感谢。

作者: soulsaga    时间: 2017-12-27 16:40
XP有魔防的么?
作者: huajinyu123    时间: 2017-12-27 17:27
到脚本里去新加几个角色参数
然后在升级的那个板块里写上 升级时这个参数如何变化
另外战斗模块里的防御改成装备的防御加上这个参数就行了
价值什么的把那个999上限改了 或者补充 当事件id多少多少时 价值是99999999999类的 因为数据库里写不进去这么大的值
作者: SailCat    时间: 2017-12-27 23:05
用我的数据库备注插件,设定打开狂野模式,然后备注#price=999999;str_plus=1999;dex_plus=2999这样就行了
如果再加上系统核心插件(和默认系统100%兼容),角色能力就可以修改上限。

角色默认既没有防御力也没有魔防力,都是零,要空手攻防的话,站上有脚本。
至于等级99的那个牵涉到make_exp_table,所以比较麻烦。
作者: 89444640    时间: 2017-12-28 09:04
本帖最后由 89444640 于 2017-12-28 09:14 编辑
SailCat 发表于 2017-12-27 23:05
用我的数据库备注插件,设定打开狂野模式,然后备注#price=999999;str_plus=1999;dex_plus=2999这样就行了
...


谢谢,上述属性的修改应该是没问题了,我去试一下,
等级99这个我估计用不到,就不改了,
空手攻防我去搜一下关键词,看看能不能用。
正在企盼您的多装备插件完成,因此还没有击中调节数据库,因为可会造成角色能力差距进一步加大。
如果有了多装备,扩充上限以后装备设置的数值调节范围可以增大。

空手攻防很久以前的了,找到的几个帖子
唯一一个有的是这个
https://rpg.blue/forum.php?mod=v ... B%E6%94%BB%E9%98%B2
但是连接已经失效 ,若谁有保存改脚本还请发我看一下,谢谢
作者: 芯☆淡茹水    时间: 2017-12-28 10:33
本帖最后由 芯☆淡茹水 于 2017-12-28 10:57 编辑

这个以前做过类似的效果:

  1. #==============================================================================
  2. module XdRs
  3.   #--------------------------------------------------------------------------
  4.   #攻击以4项属性的百分比附加。
  5.   #数组格式:[力量百分比,敏捷百分比,速度百分比,智力百分比]
  6.   Properties_atk_rate = [50,0,0,0]
  7.   #--------------------------------------------------------------------------
  8.   #物防以4项属性的百分比附加。
  9.   Properties_pdef_rate = [0,30,0,0]
  10.   #--------------------------------------------------------------------------
  11.   #魔防以4项属性的百分比附加。
  12.   Properties_mdef_rate = [0,0,0,30]
  13.   #--------------------------------------------------------------------------
  14.   #未装备武器时攻击方动画ID。
  15.   Eh_anm_id1 = 0
  16.   #--------------------------------------------------------------------------
  17.   #未装备武器时对象方动画ID。
  18.   Eh_anm_id2 = 0
  19. end
  20. #==============================================================================
  21. class Game_Actor < Game_Battler
  22.   #--------------------------------------------------------------------------
  23.   def attribute_increase(rate)
  24.     data = [str,dex,agi,int]
  25.     4.times{|i| data[i] = data[i] * rate[i] / 100}
  26.     return eval data.join("+")
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   def has_weapon?
  30.     return !!$data_weapons[@weapon_id]
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   alias xr_aia_base_atk base_atk
  34.   def base_atk
  35.     return xr_aia_base_atk + attribute_increase(XdRs::Properties_atk_rate)
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   alias xr_aia_base_pdef base_pdef
  39.   def base_pdef
  40.     return xr_aia_base_pdef + attribute_increase(XdRs::Properties_pdef_rate)
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   alias xr_aia_base_mdef base_mdef
  44.   def base_mdef
  45.     return xr_aia_base_mdef + attribute_increase(XdRs::Properties_mdef_rate)
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   alias xr_aia_animation1_id animation1_id
  49.   def animation1_id
  50.     return has_weapon? ? xr_aia_animation1_id : XdRs::Eh_anm_id1
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   alias xr_aia_animation2_id animation2_id
  54.   def animation2_id
  55.     return has_weapon? ? xr_aia_animation2_id : XdRs::Eh_anm_id2
  56.   end
  57. end
  58. #==============================================================================
复制代码

作者: 89444640    时间: 2017-12-28 12:29
本帖最后由 89444640 于 2017-12-28 12:34 编辑
芯☆淡茹水 发表于 2017-12-28 10:33
这个以前做过类似的效果:


谢谢,
这个效果看上去比较接近想要的,角色本身防御、魔防,不过用于描述会有问题。
智力/魔防还可以接受,
敏捷/物防 这两个属性牵扯到一起很难解释的比较合理啊……,而且默认敏捷,也就是默认用于的灵巧,还牵扯到命中率……
让角色单独增加防御力、魔法防御力,在数据库中设定,随着等级提升而提升,估计……冲突会很多……
但是脚本这种加防御力的方法……要不……力量影响物理防御,智力影响魔法防御?这样较为合理?
未装备武器动画这个,可能我的也不太适用,因为每个角色不同武器攻击动作都不一样,只用对象方动画攻击方动画描述注销就行了吧?试了一下不行……留空白动画吧



作者: 芯☆淡茹水    时间: 2017-12-28 15:19
89444640 发表于 2017-12-28 12:29
谢谢,
这个效果看上去比较接近想要的,角色本身防御、魔防,不过用于描述会有问题。
智力/魔防还可以接 ...

数据库设物防魔防?数据库哪儿能设?没地方了,除非你舍弃两项属性不要。
也可以迂回,设置几个空白角色某两曲线为物防和魔防的模板,然后每个角色关联相应的模板角色ID。

至于空手动画,全动画脚本肯定不适用。
作者: 芯☆淡茹水    时间: 2017-12-28 15:38
也许稍微这样改一下更贴切点

  1. #==============================================================================
  2. module XdRs
  3.   #--------------------------------------------------------------------------
  4.   #每升一级,角色增加的攻击力,物防和魔防。格式:[攻击力,物防,魔防]
  5.   Level_add = [5,3,3]
  6.   #--------------------------------------------------------------------------
  7.   #攻击以4项属性的百分比附加。
  8.   #格式:[力量百分比,敏捷百分比,速度百分比,智力百分比]
  9.   Properties_atk_rate = [50,0,0,0]
  10.   #--------------------------------------------------------------------------
  11.   #物防以4项属性的百分比附加。
  12.   Properties_pdef_rate = [0,30,0,0]
  13.   #--------------------------------------------------------------------------
  14.   #魔防以4项属性的百分比附加。
  15.   Properties_mdef_rate = [0,0,0,30]
  16.   #--------------------------------------------------------------------------
  17.   #未装备武器时攻击方动画ID。(格式:角色ID=>动画ID)
  18.   Eh_anm_id1 = {1=>10,2=>12}
  19.   #--------------------------------------------------------------------------
  20.   #未装备武器时对象方动画ID。(格式:角色ID=>动画ID)
  21.   Eh_anm_id2 = {1=>20,2=>21}
  22. #==============================================================================
  23.   #--------------------------------------------------------------------------
  24.   def self.ar_rate(type)
  25.     return [Properties_atk_rate,Properties_pdef_rate,Properties_mdef_rate][type]
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   def self.eh_anm1(actor_id)
  29.     return Eh_anm_id1[actor_id] || 0
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   def self.eh_anm2(actor_id)
  33.     return Eh_anm_id2[actor_id] || 0
  34.   end
  35. end
  36. #==============================================================================
  37. class Game_Actor < Game_Battler
  38.   #--------------------------------------------------------------------------
  39.   def level_increase(type)
  40.     return XdRs::Level_add[type] * @level
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   def attribute_increase(type)
  44.     data = [str,dex,agi,int]
  45.     rate = XdRs.ar_rate(type)
  46.     4.times{|i| data[i] = data[i] * rate[i] / 100}
  47.     return eval(data.join("+")) + level_increase(type)
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   def has_weapon?
  51.     return !!$data_weapons[@weapon_id]
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   alias xr_aia_base_atk base_atk
  55.   def base_atk
  56.     return xr_aia_base_atk + attribute_increase(0)
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   alias xr_aia_base_pdef base_pdef
  60.   def base_pdef
  61.     return xr_aia_base_pdef + attribute_increase(1)
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   alias xr_aia_base_mdef base_mdef
  65.   def base_mdef
  66.     return xr_aia_base_mdef + attribute_increase(2)
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   alias xr_aia_animation1_id animation1_id
  70.   def animation1_id
  71.     return has_weapon? ? xr_aia_animation1_id : XdRs.eh_anm1(@actor_id)
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   alias xr_aia_animation2_id animation2_id
  75.   def animation2_id
  76.     return has_weapon? ? xr_aia_animation2_id : XdRs.eh_anm2(@actor_id)
  77.   end
  78. end
  79. #==============================================================================
复制代码

作者: 89444640    时间: 2017-12-28 15:51
本帖最后由 89444640 于 2017-12-28 16:24 编辑
芯☆淡茹水 发表于 2017-12-28 15:19
数据库设物防魔防?数据库哪儿能设?没地方了,除非你舍弃两项属性不要。
也可以迂回,设置几个空白角色 ...


数据库这个……没地方确实有点可惜了,如果用您的这种方式,太过不利于设置,角色众多,太复杂,难以控制……还是用现在的脚本试试吧

感觉上,在没办法的情况下,按照力量/防御  智力/魔防这样来,还算较为合理,防御力稍微提供一点即可,比如30%,让角色不至于完全靠新装备增加防御力。

但是这么设置的副作用,法师类角色攻击低了打不动人,我普通动画等于白做,攻击高了防御又上来了……
不过如果用那个装备注释脚本,让双刀流之类的用注释减少防御,法师的魔法书也减少防御,也算间接的找了个平衡。

空手动画直可以接播放打击,但是只能做到这样了,无法关联己方动作,不过……几乎没有空手战斗的时候。也算能接受。总比空手没攻击强多了。
再或者我看看从出手方动画下手,播放个比如通用型漫画式表情,敌人也播放个同类的小表情表示被吓得掉血了什么的,也还算合理。——看我用眼神杀死你XD

话说真不知道xp做时候怎么想的……居然没防御就全靠装备,可能是出于玩家操作简便吧。

多谢提供脚本~刚发现有新的脚本了,我试一下,角色动画ID这个看明白了,就是让每个角色对应一个出售动画和命中动画,嗯,感觉这样好多了。除了主角衣服太多,空手时候衣服可能和待机的衣服不一样,这个,我加个换衣服的斗篷解决吧。但是这个下美工需求- -b,咳咳,擦血……我也可以都用一个命中效果嘛~
当然,不缺美工的画,可以给除主角外的角色做个因为没带武器而不得不空手攻击时的窘迫动作,
比如咲夜从大腿下面得飞刀带子拿飞刀发现没有了,于是过去给了敌人一脚,诸如此类,想想就会很有意思,估计我要是玩家的话,会故意给每个角色都拆下装备去攻击看看的。


那个前面的的脚本,
#每升一级,角色增加的攻击力,物防和魔防。格式:[攻击力,物防,魔防]
  Level_add = [5,3,3]
这样的话每个角色都一样了,请教分角色ID编号分别书写各自攻击、防御、魔防增加格式模板。
if chacterid=1 then 什么什么的,抱歉,我不会写

刚才我继续思考,1~99
一共有98次升级,+3 294 +2 196 +1 98……好吧,角色差异差的太大了。
看来如果找平衡,增加总数值固定,每个等级增加的数值按照随机分配的整数。
攻击力 角色1 战士总计+100 角色2 圣骑士总计+85 角色3 盗贼总计+75 角色4 法师总计+70
最高与最低不至于查一倍,
作者: 芯☆淡茹水    时间: 2017-12-28 16:22
简单的改一下还是行得通的

  1. #==============================================================================
  2. module XdRs
  3.   #--------------------------------------------------------------------------
  4.   #每升一级,角色增加的攻击力,物防和魔防。格式:角色ID => [攻击力,物防,魔防]
  5.   Level_add_data = {1=>[5,3,3],2=>[2,3,3]}
  6.   #--------------------------------------------------------------------------
  7.   #攻击以4项属性的百分比附加。
  8.   #格式:[力量百分比,敏捷百分比,速度百分比,智力百分比]
  9.   Properties_atk_rate = [50,0,0,0]
  10.   #--------------------------------------------------------------------------
  11.   #物防以4项属性的百分比附加。
  12.   Properties_pdef_rate = [0,30,0,0]
  13.   #--------------------------------------------------------------------------
  14.   #魔防以4项属性的百分比附加。
  15.   Properties_mdef_rate = [0,0,0,30]
  16.   #--------------------------------------------------------------------------
  17.   #未装备武器时攻击方动画ID。(格式:角色ID=>动画ID)
  18.   Eh_anm_id1 = {1=>10,2=>12}
  19.   #--------------------------------------------------------------------------
  20.   #未装备武器时对象方动画ID。(格式:角色ID=>动画ID)
  21.   Eh_anm_id2 = {1=>20,2=>21}
  22. #==============================================================================
  23.   #--------------------------------------------------------------------------
  24.   def self.ar_rate(type)
  25.     return [Properties_atk_rate,Properties_pdef_rate,Properties_mdef_rate][type]
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   def self.level_add(actor_id)
  29.     return Level_add_data[actor_id] || [0,0,0]
  30.   end
  31.    #--------------------------------------------------------------------------
  32.   def self.eh_anm1(actor_id)
  33.     return Eh_anm_id1[actor_id] || 0
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   def self.eh_anm2(actor_id)
  37.     return Eh_anm_id2[actor_id] || 0
  38.   end
  39. end
  40. #==============================================================================
  41. class Game_Actor < Game_Battler
  42.   #--------------------------------------------------------------------------
  43.   def level_increase(type)
  44.     return XdRs.level_add(@actor_id)[type] * @level
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   def attribute_increase(type)
  48.     data = [str,dex,agi,int]
  49.     rate = XdRs.ar_rate(type)
  50.     4.times{|i| data[i] = data[i] * rate[i] / 100}
  51.     return eval(data.join("+")) + level_increase(type)
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   def has_weapon?
  55.     return !!$data_weapons[@weapon_id]
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   alias xr_aia_base_atk base_atk
  59.   def base_atk
  60.     return xr_aia_base_atk + attribute_increase(0)
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   alias xr_aia_base_pdef base_pdef
  64.   def base_pdef
  65.     return xr_aia_base_pdef + attribute_increase(1)
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   alias xr_aia_base_mdef base_mdef
  69.   def base_mdef
  70.     return xr_aia_base_mdef + attribute_increase(2)
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   alias xr_aia_animation1_id animation1_id
  74.   def animation1_id
  75.     return has_weapon? ? xr_aia_animation1_id : XdRs.eh_anm1(@actor_id)
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   alias xr_aia_animation2_id animation2_id
  79.   def animation2_id
  80.     return has_weapon? ? xr_aia_animation2_id : XdRs.eh_anm2(@actor_id)
  81.   end
  82. end
  83. #==============================================================================
复制代码

作者: 芯☆淡茹水    时间: 2017-12-28 16:56
那么,直接设置100级时增加了多少不就行了

  1. #==============================================================================
  2. module XdRs
  3.   #--------------------------------------------------------------------------
  4.   #100级时,角色增加的攻击力,物防和魔防。格式:角色ID => [攻击力,物防,魔防]
  5.   Level_add_data = {1=>[100,60,35],2=>[85,50,55]}
  6.   #--------------------------------------------------------------------------
  7.   #攻击以4项属性的百分比附加。
  8.   #格式:[力量百分比,敏捷百分比,速度百分比,智力百分比]
  9.   Properties_atk_rate = [50,0,0,0]
  10.   #--------------------------------------------------------------------------
  11.   #物防以4项属性的百分比附加。
  12.   Properties_pdef_rate = [0,30,0,0]
  13.   #--------------------------------------------------------------------------
  14.   #魔防以4项属性的百分比附加。
  15.   Properties_mdef_rate = [0,0,0,30]
  16.   #--------------------------------------------------------------------------
  17.   #未装备武器时攻击方动画ID。(格式:角色ID=>动画ID)
  18.   Eh_anm_id1 = {1=>10,2=>12}
  19.   #--------------------------------------------------------------------------
  20.   #未装备武器时对象方动画ID。(格式:角色ID=>动画ID)
  21.   Eh_anm_id2 = {1=>20,2=>21}
  22. #==============================================================================
  23.   #--------------------------------------------------------------------------
  24.   def self.ar_rate(type)
  25.     return [Properties_atk_rate,Properties_pdef_rate,Properties_mdef_rate][type]
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   def self.level_add(actor_id)
  29.     return Level_add_data[actor_id] || [0,0,0]
  30.   end
  31.    #--------------------------------------------------------------------------
  32.   def self.eh_anm1(actor_id)
  33.     return Eh_anm_id1[actor_id] || 0
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   def self.eh_anm2(actor_id)
  37.     return Eh_anm_id2[actor_id] || 0
  38.   end
  39. end
  40. #==============================================================================
  41. class Game_Actor < Game_Battler
  42.   #--------------------------------------------------------------------------
  43.   def level_increase(type)
  44.     return (XdRs.level_add(@actor_id)[type] * @level / 100.0).round
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   def attribute_increase(type)
  48.     data = [str,dex,agi,int]
  49.     rate = XdRs.ar_rate(type)
  50.     4.times{|i| data[i] = data[i] * rate[i] / 100}
  51.     return eval(data.join("+")) + level_increase(type)
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   def has_weapon?
  55.     return !!$data_weapons[@weapon_id]
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   alias xr_aia_base_atk base_atk
  59.   def base_atk
  60.     return xr_aia_base_atk + attribute_increase(0)
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   alias xr_aia_base_pdef base_pdef
  64.   def base_pdef
  65.     return xr_aia_base_pdef + attribute_increase(1)
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   alias xr_aia_base_mdef base_mdef
  69.   def base_mdef
  70.     return xr_aia_base_mdef + attribute_increase(2)
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   alias xr_aia_animation1_id animation1_id
  74.   def animation1_id
  75.     return has_weapon? ? xr_aia_animation1_id : XdRs.eh_anm1(@actor_id)
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   alias xr_aia_animation2_id animation2_id
  79.   def animation2_id
  80.     return has_weapon? ? xr_aia_animation2_id : XdRs.eh_anm2(@actor_id)
  81.   end
  82. end
  83. #==============================================================================
复制代码

作者: 梦幻想    时间: 2017-12-28 17:21
本帖最后由 梦幻想 于 2017-12-28 17:29 编辑

说错了,自删
作者: 89444640    时间: 2017-12-28 21:45
SailCat 发表于 2017-12-27 23:05
用我的数据库备注插件,设定打开狂野模式,然后备注#price=999999;str_plus=1999;dex_plus=2999这样就行了
...

改了一会,能用了,写多少都行了,果然好用。
然后看到了 SEP 插件公共核心的96行
FRAME_RATE        = 40              # 游戏运行的帧率
我改80试了一下,速度提升很明显。
然后我就想,能不能做个开关锁某个按键,可以高倍速运行,
按住比如跟ps一样,按住X快速跳过重复对话,战斗时候高速运行,松开立即返回原始速率,就是40帧的那个,感觉特别实用啊。就是不知道怎么做。
估计类似的应用还有很多。




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