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

Project1

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

[已经解决] 如何在游戏进行时自定义技能名字?

[复制链接]

Lv2.观梦者

梦石
0
星屑
579
在线时间
192 小时
注册时间
2011-3-12
帖子
111

开拓者

跳转到指定楼层
1
发表于 2014-5-8 22:33:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1星屑
本帖最后由 7795593 于 2014-5-9 21:08 编辑

我在VX中用这个方法实现了。
首先通过这个事件输入名字,将名字储存于某个角色的名字里,自己建个不用的角色[偷懒]
然后事件中执行
$data_skills[240].name =$game_actors[100].name
save_data($data_skills, "Data/Skills.rvdata")

240是技能ID
100是角色ID

后来我想搬到来VA,但结果不行,有人可以帮帮我吗?

9090.JPG (8.98 KB, 下载次数: 26)

9090.JPG

最佳答案

查看完整内容

看不懂楼上在说什么系列…………

点评

Warning: 本帖还有一个星期过期。如果不提出异议的话将会在6月8日认可8L为最佳答案  发表于 2014-6-2 20:28
睡觉了,明天再看=。=  发表于 2014-5-9 21:24
6L哪里报错?  发表于 2014-5-9 21:21
应该没有关系的吧……  发表于 2014-5-9 21:01

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21040
在线时间
9340 小时
注册时间
2012-6-19
帖子
7107

开拓者短篇九导演组冠军

2
发表于 2014-5-8 22:33:30 | 只看该作者
看不懂楼上在说什么系列…………
  1. =begin
  2. ===============================================================================
  3.   自定义技能名字 By喵呜喵5
  4. ===============================================================================

  5. 【说明】

  6.   让默认的名称输入处理可以用来自定义技能的名称
  7.   
  8.   首先先修改对应变量(变量2)的数值为技能的ID
  9.   
  10.   之后执行事件中名称输入处理即可修改对应技能的名字
  11.   
  12.   脚本需要一个变量(变量1)储存名字数据,请不要修改这个变量的数值
  13.   
  14. =end
  15. $m5script = {} if $m5script.nil?
  16. $m5script["M5SkillName"] = true
  17. module M5SkillName
  18. #==============================================================================
  19. # 设定部分
  20. #==============================================================================
  21.   
  22.   SWI = 0
  23.   
  24.   #控制本脚本是否使用的开关ID,不需要的话这里填0就可以了
  25.   
  26.   VAR = 1
  27.   
  28.   #储存数据的变量ID,请不要随意操作这个变量(变量1)
  29.   
  30.   VAR2 = 2
  31.   
  32.   #使脚本生效的变量ID,开始名称输入处理前请修改这个变量为技能的ID(变量2)
  33.   
  34. #==============================================================================
  35. # 脚本部分
  36. #==============================================================================
  37. end
  38. class RPG::Skill
  39.   def name
  40.     word = super   
  41.     $game_variables[M5SkillName::VAR] = {} \
  42.     if !$game_variables[M5SkillName::VAR].is_a?(Hash)
  43.     return word if !$game_variables[M5SkillName::VAR][id] || $game_switches[M5SkillName::SWI]
  44.     word = $game_variables[M5SkillName::VAR][id]
  45.   end
  46. end
  47. class Window_NameEdit
  48.   alias m5_20140510_initialize initialize
  49.   def initialize(actor, max_char)
  50.     [url=home.php?mod=space&uid=260100]@skill[/url] = $game_variables[M5SkillName::VAR2]
  51.     @first_flag = true
  52.     m5_20140510_initialize(actor, max_char)
  53.     @first_flag = false
  54.   end
  55.   alias m5_20140510_refresh refresh
  56.   def refresh
  57.     if @skill > 0 and @first_flag
  58.       @default_name = @name = $data_skills[@skill].name[0, @max_char]
  59.       [url=home.php?mod=space&uid=370741]@Index[/url] = @name.size
  60.     end
  61.     m5_20140510_refresh
  62.   end
  63.   alias m5_20140510_draw_actor_face draw_actor_face
  64.   def draw_actor_face(actor, x, y, enabled = true)
  65.     return if $game_variables[M5SkillName::VAR2] > 0
  66.     m5_20140510_draw_actor_face(actor, x, y, enabled)
  67.   end
  68. end
  69. class Scene_Name
  70.   alias m5_20140510_on_input_ok on_input_ok
  71.   def on_input_ok
  72.     id = $game_variables[M5SkillName::VAR2]
  73.     if id > 0
  74.       $game_variables[M5SkillName::VAR] = {} \
  75.       if !$game_variables[M5SkillName::VAR].is_a?(Hash)
  76.       $game_variables[M5SkillName::VAR][id] = @edit_window.name
  77.       $game_variables[M5SkillName::VAR2] = 0
  78.       return_scene
  79.     else
  80.       m5_20140510_on_input_ok
  81.     end
  82.   end
  83. end
复制代码

点评

[url=home.php?mod=space&uid=370741]@Index[/url] = @name.size 61行也有问题。怎么改?  发表于 2014-5-10 22:06
52行删除论坛添加的代码,变成这样: @skill = $game_variables[M5SkillName::VAR2]  发表于 2014-5-10 14:48
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2013-6-30
帖子
92
3
发表于 2014-5-8 23:12:29 | 只看该作者
  1. $game_actors
复制代码
改成
  1. $data_actors
复制代码
即可

点评

不行啊  发表于 2014-5-9 02:38
回复

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-5-9 20:26:59 | 只看该作者
  1. $data_skills[240].name =$data_actors[100].name
  2. save_data($data_skills, "Data/Skills.rvdata2")
复制代码
改动: $game_actors改为$data_actors,Skills.rvdata改为Skills.rvdata2

点评

仍然是不行><  发表于 2014-5-9 20:32
回复

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

5
发表于 2014-5-9 20:50:10 | 只看该作者
To 楼上点评
本地测试没有问题。请不要在测试模式下运行。正常打开游戏是没有问题的。
因为测试模式结束后编辑器不会重新读取数据。

点评

我新开一个就可以,但我在做的程序不可以。我是在http://bbs.66rpg.com/thread-223350-1-1.html这个系统上的。不知道有没有问题。。。。  发表于 2014-5-9 20:59
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
579
在线时间
192 小时
注册时间
2011-3-12
帖子
111

开拓者

6
 楼主| 发表于 2014-5-9 21:09:23 | 只看该作者
taroxd 发表于 2014-5-9 20:50
To 楼上点评
本地测试没有问题。请不要在测试模式下运行。正常打开游戏是没有问题的。
因为测试模式结束后 ...



弹出这个东西来

点评

改成@index = @name.size  发表于 2014-5-10 22:07
回复

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

7
发表于 2014-5-9 21:12:53 | 只看该作者
本帖最后由 taroxd 于 2014-5-9 21:22 编辑

我没用过那个脚本,不知道会有什么 冲突
实在不行用纯文本文件试试=。=
大概是这样(未测试)

  1. # 存储部分 在事件中执行
  2. File.write 'Data/Skill240', $game_actors[100].name

  3. # 读取部分 在第240号技能处备注<Skill240>
  4. class RPG::Skill
  5.   alias name_without_read_file name
  6.   def name
  7.     if note =~ /skill240/i
  8.       File.read 'Data/Skill240'
  9.     else
  10.       name_without_read_file
  11.     end
  12.   end
  13. end
复制代码
这样数据库编辑器中不会显示,但是游戏中应该就改变了

点评

不行T_T  发表于 2014-5-9 21:17
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
92 小时
注册时间
2013-2-23
帖子
130
8
发表于 2014-5-10 13:20:55 | 只看该作者
用变量显示?技能名称直接指定变量,再在游戏中赋值。

不太清楚能不能在名字那边用控制符,但论坛上应该有相关脚本。
梦想是成为触手的新手DE☆SU(<ゝω·)绮罗星 ~☆
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-15 18:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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