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

Project1

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

[已经解决] 怎么让玩家可以对已经学会的技能进行位置排列

[复制链接]

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

跳转到指定楼层
1
发表于 2016-1-11 15:53:30 手机端发表。 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
假设玩家学会了火球,再学会了冰球。此时火球位置在冰球前面。怎么让玩家可以自己排列。

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可

查看全部评分

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

2
发表于 2016-1-19 02:13:17 | 只看该作者
深夜挖坑,求轻拍。
  1. ### 技能排序 即插即用
  2. ## 括号君被我吃了系列///
  3. # 虚拟键位 (实际默认键盘按键):
  4. #   技能界面按 A (Z) 键进入排序模式, 此时
  5. #   上下左右: 移动光标
  6. #   C (C) 或 A (Z): 确认将刚刚选过的两个技能位置对调 立即见效
  7. #   B (X): 取消本次排序

  8. class Game_Actor
  9.   # 去掉默认中学到新技能时自动重新排序: Game_Actor 495
  10.   def learn_skill skill_id
  11.     if skill_id > 0
  12.       @skills.push skill_id unless skill_learn? skill_id
  13.     end
  14.   end
  15.   # attr_writer
  16.   def skills= skills
  17.     @skills = skills
  18.   end
  19. end

  20. # 在特技场景可以调整特技排序
  21. class Scene_Skill

  22.   alias yang1zhi_main main
  23.   def main
  24.     @yang1zhi_vars = {
  25.       :sort_switch => false,
  26.       :skill_id    => 0
  27.     }
  28.     yang1zhi_main
  29.   end

  30.   alias yang1zhi_update_skill update_skill
  31.   def update_skill
  32.     if @yang1zhi_vars[:sort_switch]
  33.       if Input.trigger? Input::B
  34.         $game_system.se_play $data_system.cancel_se
  35.         @yang1zhi_vars[:sort_switch] = false
  36.       end
  37.       if Input.trigger? Input::C or Input.trigger? Input::A
  38.         $game_system.se_play $data_system.decision_se
  39.         @yang1zhi_vars[:sort_switch] = false
  40.         swap_value @actor.skills, @skill_window.skill.id, @yang1zhi_vars[:skill_id]
  41.         @skill_window.refresh
  42.       end
  43.     else
  44.       yang1zhi_update_skill
  45.       if Input.trigger? Input::A
  46.         $game_system.se_play $data_system.decision_se
  47.         @yang1zhi_vars[:sort_switch] = true
  48.         @yang1zhi_vars[:skill_id] = @skill_window.skill.id
  49.       end
  50.     end
  51.   end

  52.   def swap_value arr, a, b
  53.     i = arr.index a
  54.     j = arr.index b
  55.     arr[i], arr[j] = b, a
  56.   end
  57. end
复制代码

评分

参与人数 2星屑 +15 梦石 +1 收起 理由
RyanBern + 1 认可答案
yang1zhi + 15 认可答案

查看全部评分


  -fk: -azogi:
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-22 19:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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