Project1

标题: 精灵(称号)装备系统 [打印本页]

作者: 89444640    时间: 2018-5-19 10:44
标题: 精灵(称号)装备系统
本帖最后由 89444640 于 2018-5-20 08:05 编辑

Soulsaga朋友提出一个脚本,我觉得能整合进去,探讨一下整合中出现的问题。
脚本地址,
http://www4.plala.or.jp/findias/ ... /xp_rgss/index.html 左面菜单>システム設定>精霊システム
测试工程 更新,请直接在工程中修改
使魔 称号脚本.rar (590.15 KB, 下载次数: 139)


脚本整合进去以后,无法读取原先进度,会跳出这个对话框。

脚本使用不甚明了,用什么脚本来控制,让精灵 加入指定角色(就是角色装备栏中显示的那个。)
主要问题是脚本中精灵是如何进行详细设置。

精灵是和特定角色角色锁定的关系吗?如何进行设置?

出门一下,给家里鱼买吃的去,晚上回来才能测试了。
作者: 灯笼菜刀王    时间: 2018-5-19 13:46
本帖最后由 灯笼菜刀王 于 2018-5-19 13:49 编辑

  又要数据膨胀了啊? 我已经可以看到你调平衡的时候砸键盘的场景了

这个系统就是类似FF8的召唤兽装备, 不过只是装备后增加属性而已,没有其他的功能,不过,以此来做基础, 扩展出FF8的融合系统也是可以的=.=~~ (PS世代FF系统终于齐了, 一家人就是要整整齐齐XD)

和普通装备不同的是,  装备精灵后战斗,精灵可以升级,升级后能获得更多的能力加成

具体设置, 第一个脚本有详细说明~

具体用法就看这个栗子
精灵系统栗子.rar (199.09 KB, 下载次数: 106)

最后一个脚本(咱丢MAIN下面去了), 是扩展补丁, 用来让数据库队友当精灵用的, 好基友一起上的系统=.=.  用法就是把 精灵ID=>队友ID 塞到上面的哈希表里, 这样这个队友就可以当X号精灵使用了.

它应该和你的脚本山没冲突,  基本是原创的函数, 会冲突的可能也是重复initialize, 这个很容易整合, 碰到再说=.=

至于不能读取原来存档, 那是自然的, 你原本的存档里并没有记录精灵的数据咯~~

要添加新的属性, 以前的存档自然就不能用了.  所以前辈们才说最好主系统确定下来再来做剧情~

之前咱给你做残弹系统的时候, 不采用新属性, 而是直接用全局变量就是为了避免这个问题

作者: 灯笼菜刀王    时间: 2018-5-19 15:11
本帖最后由 灯笼菜刀王 于 2018-5-19 16:26 编辑



这个是咱的伤害公式, 尽量避免大数字乘除~ 最终的伤害就是直接 A-B的形式=.=



这个是各种全满(满级,满属性,满好感,转职)的角色(虽然驱逐舰除了鱼雷反潜和回避外, 其他属性上限都不高,而且白雪的属性还是偏辅助=.=)



打初级敌人的伤害

这次战斗 : 武器被克(-15%), 反航(伤害80%),暴击(50%防御,150%伤害), 支援,地形,被动技能,BUFF,制空,属性 这些加成都没有.

可以看出来把, 就算低火力(炮击伤害的基础),初始武器,, 在属性压制下, 这个数字一样很惊人(嘛,可能你们看习惯了几千几W的数字不觉得多大, 但是,咱这个敌人才18点HP呢=3=)

所以说, 你角色属性膨胀,敌人的数据就非常不好设置=.=~  很容易会出现, 升级前各种打不动,升级后直接割草这样的垃圾平衡.


作者: soulsaga    时间: 2018-5-19 19:36
本帖最后由 soulsaga 于 2018-5-19 19:42 编辑

能力界面改成在装备界面按RM的A键打开了..
不然要逐个切換看得累死人啊..

QQ图片2.jpg (68.3 KB, 下载次数: 17)

QQ图片2.jpg

QQ图片2.jpg (72.88 KB, 下载次数: 18)

QQ图片2.jpg

作者: chd114    时间: 2018-5-19 21:48
脚本整合进去以后,无法读取原先进度

多半是因为角色类里加了新变量,旧存档初始化的时候没定义过,所以读取时出现了错误
作者: 89444640    时间: 2018-5-19 21:54
灯笼菜刀王 发表于 2018-5-19 15:11
这个是咱的伤害公式, 尽量避免大数字乘除~ 最终的伤害就是直接 A-B的形式=.=

这个精灵缩对应的角色编号,到底是从哪里改的?
默认脚本是从9号开始算,但是我找不到脚本是从哪里设置精灵所属的id编号。
作者: 灯笼菜刀王    时间: 2018-5-19 22:30


这个就是传说中的"装备队友"
作者: 89444640    时间: 2018-5-19 23:16
本帖最后由 89444640 于 2018-5-19 23:20 编辑

冲突图了……在精灵状态查看这里可能有个bug,在角色没拥有精灵时候查看精灵状态,会跳出。

有了精灵或者装备了精灵时候查看就没事了,应该影响不大。
然后能力赋予是啥米?
スキル 斯技录 我查了一下居然是skill技能 明明是 斯给哦…这发音,能才出来才怪ORZ
提起合体游戏……我又想起这个来了,

18X版愤怒的小鸟

作者: soulsaga    时间: 2018-5-20 00:54
帮你搞好精灵专用了..不过我不知道用队友会如何..
顺便搞了在选择精灵时按RM的A键可以查看能力..
专用精灵只改了5个角色..需要更多请搜索SOULSAGA就可以找到要修改的位置..

精灵.zip

214.44 KB, 下载次数: 93


作者: 89444640    时间: 2018-5-20 08:03
本帖最后由 89444640 于 2018-5-20 08:19 编辑
soulsaga 发表于 2018-5-20 00:54
帮你搞好精灵专用了..不过我不知道用队友会如何..
顺便搞了在选择精灵时按RM的A键可以查看能力..
专用精灵 ...


这个得在我的菜单基础上进行改造,由于增加了菜单选项,现在显示出现异常了。

存盘、读盘、系统设置、退出游戏。四个选项挤没了,需要做个循环滚动菜单
然后还出现了我最深恶痛绝的步数,强迫症我看到步数无比难受……数着走……啊!!这里多走了一步!读盘!

我把楼一下,菜单下面还有个系统设置,这个得进去看一下是不是会出异常,直接在上面改吧。

然后精灵名称显示上,如果有图片的话,调用位置以右下角为原点比较合适。图片调一下,设置成固定大小就好


作者: soulsaga    时间: 2018-5-20 08:43
这个是按战斗次数算经验的..所以玩家有可能反复刷超弱怪..刷经验
所以是不是应该改成得到怪物经验升级好?
作者: 89444640    时间: 2018-5-20 09:53
soulsaga 发表于 2018-5-20 08:43
这个是按战斗次数算经验的..所以玩家有可能反复刷超弱怪..刷经验
所以是不是应该改成得到怪物经验升级好? ...

具体刷多少没有显示啊……这种刷的数量太多很累人,刷的太少,能力加成很多的话,放我也先刷满了再去主线,但是平衡就更难调了。

改成可控制的经验更好,因为怪物经验能调节,角色总经验到lv99是固定的,
精灵由于可以装备多个,可以按照角色总经验的70%,也不能太容易练了,否则中期加成太多。
因为这个出现太晚了,我这里不能出现的太早,在角色v20左右时候才刚刚获得获得,
角色20 精灵LV1 30 LV2 40LV3  55LV4 70LV5
精灵分10级太多了,5级就不少了。
精灵能力加成大概这个感觉 以最j角色满级力量200,最高能力加成20计算
LV1 1
LV2 3
LV3 6
LV4 10
LV5 20  
这样体现出后期属性加成更高,鼓励玩家练满级XD

然后因为不止一个精灵嘛,一定要特色鲜明,攻、防、命中,魔攻、魔防、回避,然后是各种属性抵抗。
最低的是+LV5 也是1最高的lv5 为20 当角色力量为较高的200时,力量加成也是10%,因为还会有其他装备加成,应该比较合理了。

因为我角色招式都是自带的,如果能调出来也能用用,可以更合理的用精灵的技能,比如给魔法属性不全的角色,使用魔法,因为最终伤害还是看角色本身智力,可以增加角色的特殊装备来找平衡,比如战士个+100智力-100力量的什么什么戒指,不是历来有高智商战士流派玩法嘛~

而且精灵既画了攻击动画,给人的感觉上,这个角色确实在参战,又省略了我画一堆待机什么的的基础动画。
鼓励玩家选择性练级

一些细节问题,这个系统应该获得以后菜单中再显示,上来直接显示了不能用,觉得莫名其妙外加剧透,需要加个开关,没有精灵时候菜单中没有这个选项。

然后,我先得整物价……如果售价不能破上限,可有麻烦了,两个一块弄简直是混乱……
作者: 灯笼菜刀王    时间: 2018-5-20 10:46
本帖最后由 灯笼菜刀王 于 2018-5-20 13:47 编辑
  1. module RPG
  2.   class Weapon
  3.     def price
  4.       if $data_weapons[@id]._qb != nil
  5.         return @price * $data_weapons[@id]._qb
  6.       else
  7.         return @price
  8.       end
  9.     end
  10.   end
  11.   class Armor
  12.     def price
  13.       if $data_armors[@id]._qb != nil
  14.         return @price * $data_armors[@id]._qb
  15.       else
  16.         return @price
  17.       end
  18.     end
  19.   end
  20.   class Item
  21.     def price
  22.       if $data_items[@id]._qb != nil
  23.         return @price * $data_items[@id]._qb
  24.       else
  25.         return @price
  26.       end
  27.     end
  28.   end
  29. end
复制代码


你试试,把它插到 猫大的那个备注接口插件的下面, 然后在 说明栏 #后面添加 qb=数字 (注意前面如果前面有其他备注,要用;隔开。栗子: 正常显示的说明 #其他备注;qb=1000    符号全部要用半角符号)

加上qb这个备注的东西,物价就会乘上它后面的数字。没加备注的就是原本价格

因为备注也能用负数,所以.... 买东西送你钱??
作者: 89444640    时间: 2018-5-20 11:13
本帖最后由 89444640 于 2018-5-20 11:25 编辑
灯笼菜刀王 发表于 2018-5-20 10:46
你试试,把它插到 猫大的那个备注接口插件的下面, 然后在 说明栏 #后面添加 qb=数字 (注意前面如果前面 ...



这样?
目前,默认售价为0的情况

描述栏
公主牌限定吊带内衣,售价极其昂贵#@BUG;qb=999999999
会带来厄运的绘画,求人茫茫处理,愿以现金酬谢。#@BUG;qb=-999999999
是哪里出错了呢?
…………眼瞎问题略过……
然后下个问题
设定是这样的道具售价300000 描述 #@BUG;qb=1000
显示上市这样的

倒着找钱的不考虑了,感觉可能在哪里重新刷新了价格。

作者: soulsaga    时间: 2018-5-20 12:53
本帖最后由 soulsaga 于 2018-5-20 12:54 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # ■ Scene_Battle
  3. #==============================================================================
  4. class Scene_Battle
  5.   #--------------------------------------------------------------------------
  6.   # ● アフターバトルフェーズ開始
  7.   #--------------------------------------------------------------------------
  8.   alias start_phase5_spirit start_phase5
  9.   def start_phase5
  10.     start_phase5_spirit
  11.     for actor in $game_party.actors
  12.       next if actor.cant_get_exp? or actor.partner.disable?
  13.       last_lv = actor.partner.obj.level
  14.       actor.partner.obj.exp += enemy.exp*0.7#战斗胜利精灵得到怪物经验的70%
  15.       actor.partner.obj.exp = actor.partner.obj.exp.to_i
  16. @status_window.level_up(actor.index) if last_lv < actor.partner.obj.level
  17.     end
  18.   end
  19. end


这样就是怪经验的70%了吧?
作者: 89444640    时间: 2018-5-20 14:22
soulsaga 发表于 2018-5-20 12:53
#==============================================================================
# ■ Scene_Battle
#= ...


精灵升级这段是这里吗?
レベルアップ経験値データベース超詳細設定
  #   LVUP_PTN = 3 のときのみ設定必要
  # この場合はUP_I、UP_Sの設定は全て無視
  # A_EXP[精霊ID] = [0, 0, レベル2になるEXP, レベル3になるEXP, …]
  A_EXP[0] = [0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  A_EXP[1] = [0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  A_EXP[2] = [0, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36]
看不懂怎么设置的啊,按照战斗数量来是能刷等级的,回头初期就能刷满了……
还是说队友精灵这个,直接在角色低下设置就行了?
作者: soulsaga    时间: 2018-5-20 14:38
本帖最后由 soulsaga 于 2018-5-20 14:44 编辑

# レベル上昇間隔のパターン設定
  # 0:NEXT = 基本値
  # 1:NEXT = 傾き * 次のLv + 基本値
  # 2:NEXT = 傾き * 次のLv * 次のLv + 基本値
  # 3:個別指定(全精霊の設定が必要です…)
  LVUP_PTN = 2

这里也可以个别设定..

  # 基本値
  # UP_I[精霊ID] = XX
  # ※精霊IDに0を指定した場合、全精霊共通設定
  UP_I[0] = 1000
  UP_I[1] = 800
  UP_I[2] = 900
  # 傾き
  # UP_S[精霊ID] = XX
  # ※精霊IDに0を指定した場合、全精霊共通設定
  UP_S[0] = 200
  UP_S[1] = 100
  UP_S[2] = 300
经验算法可以在精灵系统数据库脚本里找到

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● EXPリスト
  3.   #--------------------------------------------------------------------------
  4.   def self.exp(s_id)
  5.     up_i = get(UP_I, s_id)
  6.     up_s = get(UP_S, s_id)
  7.     list = []
  8.     list[0] = list[1] = 0
  9.     # EXPリスト作成
  10.     for lv in 2..MAX_LV
  11.       case LVUP_PTN
  12.       when 0; exp = up_i * (lv-1)
  13.       when 1; exp = list[lv-1] + up_s * (lv-1) + up_i
  14.       when 2; exp = list[lv-1] + up_s * (lv-1) * (lv-1) + up_i
  15.       when 3; exp = get(A_EXP, s_id)[lv]
  16.       end
  17.       list[lv] = exp.truncate
  18.     end
  19.     list[MAX_LV+1] = -1
  20.     #p s_id, list
  21.     return list
  22.   end





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