Project1

标题: 再问一个技能名称的问题 [打印本页]

作者: 300英雄    时间: 2017-7-9 10:22
标题: 再问一个技能名称的问题
1.首先是数据库里面那个使用者的名称怎么去除,每次使用者怎么样,我就想要一句话,他强行加了使用者技能话的意思都变了,变成使用者被他怎么样了很难受。
2.第二个是在怎么让某变量/开关,状态,属性等情况达到目标时。改变技能显示名称。
比如技能原本叫火,变量什么达到以后技能选择那个火变成火神这个名字,然后使用者释放了火神这样。
3.问一下技能名称改了怎么修改其动画,火就是一团火,火神还有火柱围绕。
作者: 张咚咚    时间: 2017-7-9 10:47
Window_BattleLog
第220行改成add_text(item.message1)

修改技能名称
$data_skills[技能编号].name = "名称"

修改技能动画
$data_skills[技能编号].animation_id = 动画ID
作者: 300英雄    时间: 2017-7-9 17:47
咚咚大大,话说我需要直接在使用的时候变成这个名字。虽然解决了名称问题,但是显示是在那个技能用以后,80号艾力课强击,我使用以后还是叫强击,第二次开始就是另一个名字和动画,我想要使用强击以后立刻变名字
作者: 张咚咚    时间: 2017-7-9 23:33
Data.7z (192.24 KB, 下载次数: 68)
作者: 300英雄    时间: 2017-7-10 15:49
本帖最后由 300英雄 于 2017-7-12 17:16 编辑

就是技能要读取备注,而然这一行我不需要就删除了。一应该没事吧
作者: 300英雄    时间: 2017-7-10 16:39
本帖最后由 300英雄 于 2017-7-12 17:18 编辑

电脑回来了。发现一个问题,我用塔卡来执行测试的,幻想时空杀ID为396,伤害公式有开关A开启,但是使用后没并没立刻变为另一个名字。请问怎么解决。使用还是叫幻想时空杀。使用完后才是新名字
@张咚咚
作者: 张咚咚    时间: 2017-7-12 17:23
比如第三回合要使用你这个技能,你第三回合以前要打开开关。
到了第三回合后,技能已经刷新了,如果在打开开关,也是不会改变名称的。
作者: 300英雄    时间: 2017-7-12 17:38
嗯,那请问怎么在技能使用时就已经改变了?就是幻想时空杀在使用时立即变为新技能名字。我需要是技能使用立刻变,拜托了。
作者: 张咚咚    时间: 2017-7-13 08:58
Data.7z (192.28 KB, 下载次数: 58)

现在应该是实时更新了。。。
作者: 300英雄    时间: 2017-7-13 10:26
并没有解决,说明一下我在技能伤害公式脚本写入开关1开启,但是使用后………………还是叫幻想时空杀(很明显,我那边有技能名字显示,如果他改变了,就算他说使用了幻想时空杀,但他名字肯定显示“改变后的名字”)。
大大知道技能伤害公式脚本吗Game_Battler里面的  def make_damage_value(user, item)我在这里写的。你在回合开始打开开关肯定是有效的,然而我说了我要技能使用时就能触发,你还是给了我技能使用后才触发。
大大可以去Game_Battler里面的  def make_damage_value(user, item)测试,把这关过了
作者: 张咚咚    时间: 2017-7-16 20:20
本帖最后由 张咚咚 于 2017-7-16 20:22 编辑

RUBY 代码复制
  1. $技能更改 = {
  2. 80=>[1,"改变后的名称","改变后的技能说明"], # 80号技能当1开关打开后使用新的名称和说明
  3. }
  4.  
  5. class Window_BattleLog < Window_Selectable
  6.   #--------------------------------------------------------------------------
  7.   # ● 显示使用技能/物品
  8.   #--------------------------------------------------------------------------
  9.   alias qqeat_display_use_item display_use_item
  10.   def display_use_item(subject, item)
  11. ########################################################################
  12.  
  13.     $game_switches[1] = true   #这里是一号开关打开了
  14.  
  15.     if subject.is_a?(Game_Actor) and item.is_a?(RPG::Skill)
  16.       if $技能更改.keys.include?(item.id) and $game_switches[$技能更改[item.id][0]]
  17.          item.name = $技能更改[item.id][1]
  18.          item.message1 = $技能更改[item.id][2]
  19.       end
  20.     end
  21. ########################################################################
  22.     qqeat_display_use_item(subject, item)
  23.   end
  24. end

作者: 300英雄    时间: 2017-7-16 21:06
本帖最后由 300英雄 于 2017-7-16 21:19 编辑

大大,这么说吧。回合判定我会用$data_skills[技能编号].name = "名称"。先手释放只要回合判定一次这样足够了,但是后手的话,条件达到了,但还是老技能的名称和动画。
if $技能更改.keys.include?(item.id) and $game_switches[$技能更改[item.id][0]] and subject.states[$技能更改[item.id][4]].id
这个大大记得吧你让这里能多一点判定,self.state?($技能更改[item.id][4]) <4我弄过了一个判定ID2.但是报错state没有用>然后是属性最好是self.属性ID,self.要求数值
完整的要求大概下表
技能ID   开关<-1表示无视开关ID>    名称             说明                   释放动画ID(解决)        状态ID      属性ID<0是血量>   要求属性ID的数值<配合属性ID那一项就是血量大于等于1>     skill_basic_level(希亿大大豪华技能那边的,希望能增加,脚本麻烦去搜索)
396=>[-1   ,                                      "暗影瞬杀" ,"瞬杀对手",              2        ,                              2,              0,                                          1,                                                                                        1 ]
综合说明396号ID技能 无视开关条件 更改名称为"暗影瞬杀",说明为"X瞬杀对手',更改动画ID为2,需要状态ID2存在,血量大于等于1,技能等级大于等于1
作者: soulsaga    时间: 2017-7-16 21:32
LZ你干脆换掉原有的技能ID就好了..
作者: 300英雄    时间: 2017-7-16 21:36
希亿大大的技能库。就是一个大障碍。你删除了,然后加新技能(连接那个技能)——没用。技能等级0不显示
作者: soulsaga    时间: 2017-7-17 11:41
300英雄 发表于 2017-7-16 21:36
希亿大大的技能库。就是一个大障碍。你删除了,然后加新技能(连接那个技能)——没用。技能等级0不显示 ...

你说的技能库脚本搜不出来啊..麻烦给下地址..
作者: 张咚咚    时间: 2017-7-17 12:49
本帖最后由 张咚咚 于 2017-7-17 18:11 编辑

RUBY 代码复制
  1. $技能更改 = {
  2. 80=>[1,"新名称","新说明",5,[2]], # 80号技能,开关1为on且2号状态持有使用新名称、新说明、5号新动画ID
  3. }
  4. $技能恢复 = {}
  5.  
  6. class Window_BattleLog < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 显示使用技能/物品
  9.   #--------------------------------------------------------------------------
  10.   alias qqeat_display_use_item display_use_item
  11.   def display_use_item(subject, item)
  12. ########################################################################
  13.  
  14. #角色、技能、有设定
  15. if subject.is_a?(Game_Actor) and item.is_a?(RPG::Skill) and $技能更改.keys.include?(item.id)
  16.  
  17.   #获取满足的状态数量
  18.   state_id = 0
  19.   subject.states.each{|s|$技能更改[item.id][4].each{|i|state_id += 1 if s.id == i}}
  20.  
  21.   #获取技能对应的下标
  22.   skill_index = {}
  23.   0.upto(subject.skills.length-1){|i|skill_index[subject.skills[i].id] = i}
  24.  
  25.   #开关满足、状态满足
  26.   if ($技能更改[item.id][0] == -1 or $game_switches[$技能更改[item.id][0]]) and state_id == $技能更改[item.id][4].length
  27.     #记录原来的名称、说明、动画ID
  28.     $技能恢复[item.id] = [item.name,item.message1,item.animation_id] if $技能恢复[item.id] == nil
  29.     #更改使用
  30.     item.name = $技能更改[item.id][1]
  31.     item.message1 = $技能更改[item.id][2]
  32.     item.animation_id = $技能更改[item.id][3]
  33.     #更改实际
  34.     subject.skills[skill_index[item.id]].name = $技能更改[item.id][1]
  35.   elsif $技能恢复[item.id] != nil
  36.     #恢复原来的名称、说明、动画ID
  37.     skill = subject.skills[skill_index[item.id]]
  38.     skill.name = $技能恢复[item.id][0]
  39.     skill.message1 = $技能恢复[item.id][1]
  40.     skill.animation_id = $技能恢复[item.id][2]
  41.   end
  42. end
  43.  
  44. ########################################################################
  45.     qqeat_display_use_item(subject, item)
  46.   end
  47. end

作者: 300英雄    时间: 2017-7-17 13:07
@VIPArcher 结贴吧。完美解决了
作者: soulsaga    时间: 2017-7-17 13:23
本帖最后由 soulsaga 于 2017-7-17 13:44 编辑

你敌群事件条件是0+0回合..然后再新建第2页条件只有回合结束后..都执 行要你的改名事件就可以即时更新名称了..
亲测有效..

我是测试过的..你说不行?
或且其实这不是你要求的?




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