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

Project1

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

[我要悬赏] 【有偿招募】整合XP工程 5个工程为一个工程

[复制链接]

Lv4.逐梦者

梦石
0
星屑
6281
在线时间
1101 小时
注册时间
2015-8-15
帖子
658
跳转到指定楼层
1
发表于 2022-11-24 17:17:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 金芒芒 于 2022-11-24 21:57 编辑

转身系统工程,群战刺夜的 XP-MBBS-7.0-master终级板工程  , 窗口1200*700无黑边工程  ,空之轨迹装备回路, ARPG地图CP控件


剧情我自己有 工具XP  ARPG 群战刺夜的 XP-MBBS-7.0-master终级板 修改成三国板 要求群战战士拥有技能和四个被动技能,地图CP条释放技能   技能要按自己手动放置,装备回路且领悟技能4秒释放一次,群战战士等级上升(系统没做等级只有下阶),窗口1200*700无黑边的我有了只是插件和群战XP-MBBS-7.0-master有冲突,4个被动技能是有脚本转身领悟的指定技能,布阵就是战斗前安排指定的位置10选5 有偿招募
更多图片 小图 大图
组图打开中,请稍候......

评分

参与人数 1+1 收起 理由
alexncf125 + 1 留名看戏

查看全部评分

Lv4.逐梦者

梦石
0
星屑
6281
在线时间
1101 小时
注册时间
2015-8-15
帖子
658
2
 楼主| 发表于 2023-3-1 08:16:07 | 只看该作者
本帖最后由 金芒芒 于 2023-3-1 08:55 编辑

求脚本大神门何在就差地图CP跑条事件触发技能了,群战窗口已经扩张1200*700成功。

11.png (237.58 KB, 下载次数: 1)

11.png

12222.png (409.71 KB, 下载次数: 2)

12222.png

CP技能.jpg (279.15 KB, 下载次数: 0)

CP技能.jpg
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6281
在线时间
1101 小时
注册时间
2015-8-15
帖子
658
3
 楼主| 发表于 2023-3-1 09:08:11 | 只看该作者
本帖最后由 金芒芒 于 2023-3-8 14:30 编辑

技能有30个技能每个技能的冷却时间多不一样的要用30个空轨顺序栏脚本
我这个是战棋空轨顺序栏脚本求大神操刀修改成群战的空轨顺序栏脚本
链接: https://pan.baidu.com/s/1VIVGn6_KJxlM8ShnJ24dWA?pwd=2msb 提取码: 2msb 复制这段内容后打开百度网盘手机App,操作更方便哦



RUBY 代码复制
  1. #==============================================================================
  2. # ■ Sprite_Cursor
  3. #    光标sprite
  4. #==============================================================================
  5. class Sprite_Cursor < RPG::Sprite
  6.   #--------------------------------------------------------------------------
  7.   # ● 公開インスタンス変数
  8.   #--------------------------------------------------------------------------
  9.   attr_reader   :map_x                    # マップ X 座標 (論理座標)
  10.   attr_reader   :map_y                    # マップ Y 座標 (論理座標)
  11.   attr_reader   :real_x                   # マップ X 座標 (実座標 * 128)
  12.   attr_reader   :real_y                   # マップ Y 座標 (実座標 * 128)
  13.   #--------------------------------------------------------------------------
  14.   # ● オブジェクト初期化
  15.   #     viewport  : ビューポート
  16.   #     character : キャラクター (Game_Character)
  17.   #--------------------------------------------------------------------------
  18.   def initialize(viewport, x, y)
  19.     super(viewport)
  20.     self.bitmap = RPG::Cache.picture(ZTBS::CURSOR)
  21.     self.ox = self.bitmap.width / 2
  22.     self.oy = self.bitmap.height
  23.     moveto(x, y)
  24.     update
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 解放
  28.   #--------------------------------------------------------------------------
  29.   def dispose
  30.     if self.bitmap != nil
  31.       self.bitmap.dispose
  32.     end
  33.     super
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 指定位置に移動
  37.   #     x : X 座標
  38.   #     y : Y 座標
  39.   #--------------------------------------------------------------------------
  40.   def moveto(x, y)
  41.     @map_x = x % $game_map.width
  42.     @map_y = y % $game_map.height
  43.     @real_x = @map_x * 128
  44.     @real_y = @map_y * 128
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 画面 X 座標の取得
  48.   #--------------------------------------------------------------------------
  49.   def screen_x
  50.     # 実座標とマップの表示位置から画面座標を求める
  51.     return (@real_x - $game_map.display_x + 3) / 4 + 16
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 画面 Y 座標の取得
  55.   #--------------------------------------------------------------------------
  56.   def screen_y
  57.     # 実座標とマップの表示位置から画面座標を求める
  58.     y = (@real_y - $game_map.display_y + 3) / 4 + 32
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 画面 Z 座標の取得
  62.   #--------------------------------------------------------------------------
  63.   def screen_z
  64.     # 実座標とマップの表示位置から画面座標を求める
  65.     z = (@real_y - $game_map.display_y + 3) / 4 + 32
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● conceal 这功能比较诡异
  69.   #--------------------------------------------------------------------------
  70.   def s_visible
  71.     self.visible = false
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● appear 太那啥,不说了
  75.   #--------------------------------------------------------------------------
  76.   def f_visible
  77.     self.visible = true
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● フレーム更新
  81.   #--------------------------------------------------------------------------
  82.   def update
  83.     super
  84.     moveto($game_player.x, $game_player.y)
  85.     # スプライトの座標を設定
  86.     self.x = screen_x
  87.     self.y = screen_y
  88.     self.z = screen_z + 1
  89.   end
  90. end
  91.  
  92. #==============================================================================
  93. # ■ Sprite_Area   
  94. #    魔法攻击范围sprite
  95. #==============================================================================
  96.  
  97. class Sprite_Area < RPG::Sprite
  98.   #--------------------------------------------------------------------------
  99.   # ● 公開インスタンス変数
  100.   #--------------------------------------------------------------------------
  101.   attr_reader   :map_x                    # マップ X 座標 (論理座標)
  102.   attr_reader   :map_y                    # マップ Y 座標 (論理座標)
  103.   attr_reader   :real_x                   # マップ X 座標 (実座標 * 128)
  104.   attr_reader   :real_y                   # マップ Y 座標 (実座標 * 128)
  105.   #--------------------------------------------------------------------------
  106.   # ● オブジェクト初期化
  107.   #     viewport  : ビューポート
  108.   #     character : キャラクター (Game_Character)
  109.   #--------------------------------------------------------------------------
  110.   def initialize(viewport, type, x, y, invisible = false)
  111.     super(viewport)
  112.     case type
  113.     when 0
  114.       self.bitmap = RPG::Cache.picture(ZTBS::ACTOR_AREA)
  115.     when 1
  116.       self.bitmap = RPG::Cache.picture(ZTBS::ENEMY_AREA)
  117.     end
  118.     self.ox = self.bitmap.width / 2
  119.     self.oy = self.bitmap.height
  120.     self.opacity = 0 if invisible
  121.     moveto(x, y)
  122.     update
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 解放
  126.   #--------------------------------------------------------------------------
  127.   def dispose
  128.     if self.bitmap != nil
  129.       self.bitmap.dispose
  130.     end
  131.     super
  132.   end
  133.   #--------------------------------------------------------------------------
  134.   # ● 指定位置に移動
  135.   #     x : X 座標
  136.   #     y : Y 座標
  137.   #--------------------------------------------------------------------------
  138.   def moveto(x, y)
  139.     @map_x = x
  140.     @map_y = y
  141.     @real_x = @map_x * 128
  142.     @real_y = @map_y * 128
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ● 画面 X 座標の取得
  146.   #--------------------------------------------------------------------------
  147.   def screen_x
  148.     # 実座標とマップの表示位置から画面座標を求める
  149.     return (@real_x - $game_map.display_x + 3) / 4 + 16
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ● 画面 Y 座標の取得
  153.   #--------------------------------------------------------------------------
  154.   def screen_y
  155.     # 実座標とマップの表示位置から画面座標を求める
  156.     y = (@real_y - $game_map.display_y + 3) / 4 + 32
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● 画面 Z 座標の取得
  160.   #--------------------------------------------------------------------------
  161.   def screen_z
  162.     # 実座標とマップの表示位置から画面座標を求める
  163.     z = (@real_y - $game_map.display_y + 3) / 4 + 32
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● フレーム更新
  167.   #--------------------------------------------------------------------------
  168.   def update
  169.     super
  170.     # スプライトの座標を設定
  171.     self.x = screen_x
  172.     self.y = screen_y
  173.     self.z = screen_z
  174.  
  175.   end
  176. end
  177.  
  178. #==============================================================================
  179. # ■ Sprite_Range
  180. #    魔法攻击范围内的攻击区域sprite
  181. #==============================================================================
  182. class Sprite_Range < RPG::Sprite
  183.   #--------------------------------------------------------------------------
  184.   # ● 公開インスタンス変数
  185.   #--------------------------------------------------------------------------
  186.   attr_reader   :map_x                    # マップ X 座標 (論理座標)
  187.   attr_reader   :map_y                    # マップ Y 座標 (論理座標)
  188.   attr_reader   :real_x                   # マップ X 座標 (実座標 * 128)
  189.   attr_reader   :real_y                   # マップ Y 座標 (実座標 * 128)
  190.   #--------------------------------------------------------------------------
  191.   # ● オブジェクト初期化
  192.   #     viewport  : ビューポート
  193.   #     character : キャラクター (Game_Character)
  194.   #--------------------------------------------------------------------------
  195.   def initialize(viewport, type, x, y, invisible = false)
  196.     super(viewport)
  197.     case type
  198.     when 0
  199.       self.bitmap = RPG::Cache.picture(ZTBS::ACTOR_TARGET_AREA)
  200.     when 1
  201.       self.bitmap = RPG::Cache.picture(ZTBS::ENEMY_TARGET_AREA)
  202.     end
  203.     self.ox = self.bitmap.width / 2
  204.     self.oy = self.bitmap.height
  205.     self.opacity = 0 if invisible
  206.     @plus_map_x = x - $game_player.x
  207.     @plus_map_y = y - $game_player.y
  208.     moveto(x, y)
  209.     update
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # ● 解放
  213.   #--------------------------------------------------------------------------
  214.   def dispose
  215.     if self.bitmap != nil
  216.       self.bitmap.dispose
  217.     end
  218.     super
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # ● 指定位置に移動
  222.   #     x : X 座標
  223.   #     y : Y 座標
  224.   #--------------------------------------------------------------------------
  225.   def moveto(x, y)
  226.     @map_x = x
  227.     @map_y = y
  228.     @real_x = @map_x * 128
  229.     @real_y = @map_y * 128
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # ● 画面 X 座標の取得
  233.   #--------------------------------------------------------------------------
  234.   def screen_x
  235.     # 実座標とマップの表示位置から画面座標を求める
  236.     return (@real_x - $game_map.display_x + 3) / 4 + 16
  237.   end
  238.   #--------------------------------------------------------------------------
  239.   # ● 画面 Y 座標の取得
  240.   #--------------------------------------------------------------------------
  241.   def screen_y
  242.     # 実座標とマップの表示位置から画面座標を求める
  243.     y = (@real_y - $game_map.display_y + 3) / 4 + 32
  244.   end
  245.   #--------------------------------------------------------------------------
  246.   # ● 画面 Z 座標の取得
  247.   #--------------------------------------------------------------------------
  248.   def screen_z
  249.     # 実座標とマップの表示位置から画面座標を求める
  250.     z = (@real_y - $game_map.display_y + 3) / 4 + 32
  251.   end
  252.   #--------------------------------------------------------------------------
  253.   # ● フレーム更新
  254.   #--------------------------------------------------------------------------
  255.   def update
  256.     super
  257.     @map_x = $game_player.x + @plus_map_x
  258.     @map_y = $game_player.y + @plus_map_y
  259.     @real_x = @map_x * 128
  260.     @real_y = @map_y * 128
  261.     # スプライトの座標を設定
  262.     self.x = screen_x
  263.     self.y = screen_y
  264.     self.z = screen_z
  265.   end
  266. end
  267.  
  268. #==============================================================================
  269. # ■ RPG::Skill
  270. #==============================================================================
  271. module RPG
  272.   class Skill
  273.     def name
  274.       name = @name.split(/@/)[0]
  275.       if name != nil then
  276.       return name.gsub("[T]", "")
  277.      else @name
  278.      end
  279.     end
  280.     def add_at
  281.       add = @name.split(/@/)[1].to_i
  282.       return add != nil ? add : 0
  283.     end
  284.     def tactical?
  285.       return @name.include?("[T]")
  286.     end   
  287.   end
  288. end
  289. #==============================================================================
  290. # ■ Window_TSkill
  291. #==============================================================================
  292. class Window_TSkill < Window_Selectable
  293.   #--------------------------------------------------------------------------
  294.   # ● 公開インスタンス変数
  295.   #--------------------------------------------------------------------------
  296.   attr_reader     :data                    # データ
  297.   #--------------------------------------------------------------------------
  298.   # ● オブジェクト初期化
  299.   #     actor : アクター
  300.   #--------------------------------------------------------------------------
  301.   def initialize(actor,type)
  302.     super(0, 64, 320, 256)
  303.     if $game_player.y < 4
  304.       self.y = 416 - self.height
  305.     end
  306.     if $game_player.x < 10
  307.       self.x = 640 - self.width
  308.     end
  309.     @actor = actor
  310.     @type = type
  311.     refresh
  312.     self.index = 0
  313.   end
  314.   #--------------------------------------------------------------------------
  315.   # ● スキルの取得
  316.   #--------------------------------------------------------------------------
  317.   def skill
  318.     return @data[self.index]
  319.   end
  320.   #--------------------------------------------------------------------------
  321.   # ● リフレッシュ
  322.   #--------------------------------------------------------------------------
  323.   def refresh
  324.     if self.contents != nil
  325.       self.contents.dispose
  326.       self.contents = nil
  327.     end
  328.     @data = []
  329.  
  330.     #caste
  331.     if @type == 1 then
  332.  
  333.      for i in 0...@actor.skills.size
  334.        skill = $data_skills[@actor.skills[i]]
  335.        if skill != nil and skill.tactical? and not skill.element_set.include?($data_system.elements.index("craft"))
  336.          @data.push(skill)
  337.        end
  338.      end
  339.     end
  340.     #craft  
  341.     if @type == 2 then
  342.      for i in 0...@actor.skills.size
  343.       skill = $data_skills[@actor.skills[i]]
  344.       if skill != nil and skill.tactical? and skill.element_set.include?($data_system.elements.index("craft"))
  345.         @data.push(skill)
  346.       end
  347.      end
  348.    end
  349.  
  350.     # 項目数が 0 でなければビットマップを作成し、全項目を描画
  351.     @item_max = @data.size
  352.     if @item_max > 0
  353.       self.contents = Bitmap.new(width - 32, row_max * 32)
  354.       for i in 0...@item_max
  355.         draw_item(i)
  356.       end
  357.     end
  358.   end
  359.   #--------------------------------------------------------------------------
  360.   # ● 項目の描画
  361.   #     index : 項目番号
  362.   #--------------------------------------------------------------------------
  363.   def draw_item(index)
  364.     skill = @data[index]
  365.     if @type == 2 then
  366.     if @actor.craft_can_use?(skill.id)
  367.       self.contents.font.color = normal_color
  368.     else
  369.       self.contents.font.color = disabled_color
  370.     end
  371.     else
  372.     if @actor.skill_can_use?(skill.id)
  373.       self.contents.font.color = normal_color
  374.     else
  375.       self.contents.font.color = disabled_color
  376.     end
  377.     end
  378.     x = 4
  379.     y = index * 32
  380.     rect = Rect.new(x, y, self.width - 32, 32)
  381.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  382.     bitmap = RPG::Cache.icon(skill.icon_name)
  383.     opacity = self.contents.font.color == normal_color ? 255 : 128
  384.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  385.     self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
  386.     self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
  387.   end
  388.   #--------------------------------------------------------------------------
  389.   # ● ヘルプテキスト更新
  390.   #--------------------------------------------------------------------------
  391.   def update_help
  392.     @help_window.set_text(self.skill == nil ? "" : self.skill.description)
  393.   end
  394. end
  395.  
  396. #==============================================================================
  397. # ■ RPG::Item
  398. #==============================================================================
  399. module RPG
  400.   class Item
  401.     def name
  402.       name = @name.split(/@/)[0]
  403.       if name != nil then
  404.       return name.gsub("[T]", "")
  405.      else @name
  406.      end
  407.     end
  408.     def at_add
  409.       add = @name.split(/@/)[1].to_i
  410.       return add != nil ? add : 0
  411.     end
  412.     def tactical?
  413.       return @name.include?("[T]")
  414.     end     
  415.   end
  416. end
  417. #==============================================================================
  418. # ■ Window_TItem
  419. #==============================================================================
  420. class Window_TItem < Window_Selectable
  421.   #--------------------------------------------------------------------------
  422.   # ● 公開インスタンス変数
  423.   #--------------------------------------------------------------------------
  424.   attr_reader     :data                    # データ
  425.   #--------------------------------------------------------------------------
  426.   # ● オブジェクト初期化
  427.   #     actor : アクター
  428.   #--------------------------------------------------------------------------
  429.   def initialize
  430.     super(0, 64, 320, 256)
  431.     if $game_player.y < 4
  432.       self.y = 416 - self.height
  433.     end
  434.     if $game_player.x < 10
  435.       self.x = 640 - self.width
  436.     end
  437.     refresh
  438.     self.index = 0
  439.   end
  440.   #--------------------------------------------------------------------------
  441.   # ● アイテムの取得
  442.   #--------------------------------------------------------------------------
  443.   def item
  444.     return @data[self.index]
  445.   end
  446.   #--------------------------------------------------------------------------
  447.   # ● リフレッシュ
  448.   #--------------------------------------------------------------------------
  449.   def refresh
  450.     if self.contents != nil
  451.       self.contents.dispose
  452.       self.contents = nil
  453.     end
  454.     @data = []
  455.     # アイテムを追加
  456.     for i in 1...$data_items.size
  457.       if $game_party.item_number(i) > 0 and $data_items[i].tactical?
  458.         @data.push($data_items[i])
  459.       end
  460.     end
  461.     # 項目数が 0 でなければビットマップを作成し、全項目を描画
  462.     @item_max = @data.size
  463.     if @item_max > 0
  464.       self.contents = Bitmap.new(width - 32, row_max * 32)
  465.       for i in 0...@item_max
  466.         draw_item(i)
  467.       end
  468.     end
  469.   end
  470.   #--------------------------------------------------------------------------
  471.   # ● 項目の描画
  472.   #     index : 項目番号
  473.   #--------------------------------------------------------------------------
  474.   def draw_item(index)
  475.     item = @data[index]
  476.     case item
  477.     when RPG::Item
  478.       number = $game_party.item_number(item.id)
  479.     when RPG::Weapon
  480.       number = $game_party.weapon_number(item.id)
  481.     when RPG::Armor
  482.       number = $game_party.armor_number(item.id)
  483.     end
  484.     if item.is_a?(RPG::Item) and
  485.        $game_party.item_can_use?(item.id)
  486.       self.contents.font.color = normal_color
  487.     else
  488.       self.contents.font.color = disabled_color
  489.     end
  490.     x = 4
  491.     y = index * 32
  492.     rect = Rect.new(x, y, self.width - 32, 32)
  493.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  494.     bitmap = RPG::Cache.icon(item.icon_name)
  495.     opacity = self.contents.font.color == normal_color ? 255 : 128
  496.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  497.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  498.     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  499.     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  500.   end
  501.   #--------------------------------------------------------------------------
  502.   # ● ヘルプテキスト更新
  503.   #--------------------------------------------------------------------------
  504.   def update_help
  505.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  506.   end
  507. end
  508.  
  509. #==============================================================================
  510. # ■ Window_TActors
  511. #==============================================================================
  512. class Window_TActors < Window_Selectable
  513.   #--------------------------------------------------------------------------
  514.   # ● 公開インスタンス変数
  515.   #--------------------------------------------------------------------------
  516.   attr_reader     :data                    # データ
  517.   #--------------------------------------------------------------------------
  518.   # ● オブジェクト初期化
  519.   #     actor : アクター
  520.   #--------------------------------------------------------------------------
  521.   def initialize
  522.     super(0, 64, 640, 352)
  523.     refresh
  524.     self.index = 0
  525.   end
  526.   #--------------------------------------------------------------------------
  527.   # ● アクターの取得
  528.   #--------------------------------------------------------------------------
  529.   def actor
  530.     return @data[self.index]
  531.   end
  532.   #--------------------------------------------------------------------------
  533.   # ● リフレッシュ
  534.   #--------------------------------------------------------------------------
  535.   def refresh
  536.     if self.contents != nil
  537.       self.contents.dispose
  538.       self.contents = nil
  539.     end
  540.     @data = []
  541.     actors = $game_system.tactics_actors.keys + $game_system.tactics_dead_actors.keys
  542.     for actor in actors
  543.       @data.push(actor)
  544.     end
  545.     @data.sort!
  546.     # 項目数が 0 でなければビットマップを作成し、全項目を描画
  547.     @item_max = @data.size
  548.     if @item_max > 0
  549.       self.contents = Bitmap.new(width - 32, row_max * 32)
  550.       for i in 0...@item_max
  551.         draw_item(i)
  552.       end
  553.     end
  554.   end
  555.   #--------------------------------------------------------------------------
  556.   # ● 項目の描画
  557.   #     index : 項目番号
  558.   #--------------------------------------------------------------------------
  559.   def draw_item(index)
  560.     if $game_system.tactics_actors.keys.include?(@data[index])
  561.       actor = $game_system.tactics_actors[@data[index]]
  562.     else
  563.       actor = $game_system.tactics_dead_actors[@data[index]]
  564.     end
  565.     x = 4
  566.     y = index * 32
  567.     rect = Rect.new(x, y, self.width - 32, 32)
  568.     draw_actor_name(actor, x, y)
  569.     draw_actor_state(actor, x + 136, y)
  570.     draw_actor_hp(actor, x + 280, y)
  571.     draw_actor_sp(actor, x + 456, y)
  572.   end
  573.   #--------------------------------------------------------------------------
  574.   # ● ヘルプテキスト更新
  575.   #--------------------------------------------------------------------------
  576.   def update_help
  577.     return
  578.   end
  579. end

RUBY 代码复制
  1. module SXL_ICON
  2.   #ICONS =图标
  3.   ICONS = {
  4.     1=>"046-Skill03",
  5.  
  6.   }
  7.  
  8.   SKIN = "456" #皮肤轨道
  9.   X    =  32         
  10.   Y    =  16      
  11. end
  12.  
  13. class KZGJ
  14.  
  15.   def initialize #定义初始化
  16.  
  17.     @base = Sprite.new #基础=新的精灵
  18.     @base.bitmap = RPG::Cache.picture(SXL_ICON::SKIN)
  19.     #基础位图=Cache.picture文件的SXL_ICON的滑道皮肤
  20.     @base.x = SXL_ICON::X
  21.     @base.y = SXL_ICON::Y
  22.     @base.z = SXL_ICON::Y+100
  23.     @width  = @base.bitmap.width#宽度=基础位图的宽度
  24.     @height = @base.bitmap.height#高度=基础位图的高度
  25.  
  26.     refresh #刷新
  27.  
  28.   end
  29.  
  30.  
  31.    def refresh  #定义刷新刷新
  32.      sort   #分类
  33.      n = 0
  34.      @icon_set = [] #图标设置=[]
  35.      for battler in @battlers_array#用于@战斗图设置中的战斗者
  36.        p battler.id #复制战斗者的ID
  37.        iconname = SXL_ICON::ICONS[battler.id]#icon名称=SXL_ICON::ICONS[战斗.id]
  38.        sprite = Sprite.new #生成精灵=新的精灵
  39.        sprite.bitmap = RPG::Cache.icon(iconname)#精灵图标+RPG::Cache.icon(图标名字)
  40.        sprite.x = SXL_ICON::X + n * 25 + 25
  41.        sprite.y = SXL_ICON::Y# + n * 25 + 25
  42.        sprite.z = @base.z + 100
  43.        @icon_set.push([sprite,battler.id])#@图标设置推送([精灵,战斗者.id])
  44.        n += 1#下一个角色
  45.      end
  46.    end
  47.  
  48.    def reset  # def复位
  49.      @icon_set.each { |set| set[0].dispose}#@图标设置。每个{|放置|放置[0].布置}
  50.      refresh#刷新
  51.    end #终止
  52.  
  53.  
  54.    def cr(actor_id, position) #定义 cr(演员id,位置)
  55.      for set in @icon_set #用于在@图标_放置中设置
  56.        if set[1] == actor_id then #如果放置[1]==演员_id,则
  57.          set[0].x = SXL_ICON::X + position * 25 + 25# - 25 #放置[0]。x=SXL_ICON::x-25
  58.          set[0].y = SXL_ICON::Y- 25# + position * 25 + 25#放置[0]。y=SXL_ICON::y+位置*25+25
  59.          5.times { Graphics.update }# 5次{图形更新}
  60.          5.times { set[0].y +=5; Graphics.update}#5.次{放置[0].x+=5;图形更新}
  61.          break#强行终止
  62.        end
  63.      end
  64.    end  
  65.  
  66.    def move_up(array) #def上移(数组)
  67.      for element in array#用于数组中的元素
  68.       for i in 1..5 #对于1..5中的i
  69.        for set in @icon_set#用于在@图标_放置中设置
  70.           if $game_map.events[element].at < $game_map.events[set[1]].at and set[0].visible == true then
  71.          #如果$游戏 地图事件[要素]。位于< $游戏 地图事件[放置[1] 位于并设置[0]。可见==则为真
  72.             set[0].x -= 5 #放置[0].y -= 5
  73.           end
  74.        end
  75.         Graphics.update #图形更新
  76.       end
  77.     end
  78.    end
  79.  
  80.    def move_down(index) #def下移(索引)
  81.      for i in 1..5#用于1..5中的i
  82.        for set in @icon_set#用于在@图标_放置中设置
  83.           if $game_map.events[index].at < $game_map.events[set[1]].at and set[0].visible == true then
  84.           #如果$游戏 地图事件[索引]。位于< $游戏 地图事件[放置[1] 位于并设置[0]。可见==则为真  
  85.             set[0].x += 5#放置[0].y += 5
  86.           end
  87.        end
  88.         Graphics.update#图形更新
  89.       end
  90.    end
  91.  
  92.    def forward #def转发
  93.      for i in 1..5 #用于1..5中的i
  94.        for set in @icon_set #用于在@图标_放置中设置
  95.          if set[0].visible == true then#如果放置[0]可见==则为真  
  96.            set[0].x -= 5#放置[0].y -= 5
  97.          end
  98.        end
  99.      Graphics.update #图形更新
  100.      end
  101.    end
  102.  
  103.    def conceal(array)#def隐藏(数组)
  104.       for id in array#用于数组中的id
  105.       for set in @icon_set#用于在@icon_set中设置
  106.           if id == set[1] then#如果id==set[1],则
  107.             set[0].visible = false#放置[0]。可见=假
  108.           end
  109.         end
  110.       end
  111.    end
  112.  
  113.    def sort#def排序
  114.     @battlers_array = []#@战列兵阵=[]
  115.     for i in $game_system.tactics_actors.keys#我在$game系统中。战术演员。关键
  116.       actor = $game_map.events[i]#actor=$游戏地图事件[i]
  117.       if !$game_system.tactics_actors[i].dead? then#如果$游戏系统战术演员[i]。死去的然后
  118.        @battlers_array.push(actor)#@战列兵阵列。推(演员)
  119.       end
  120.     end
  121.  
  122.     for i in $game_system.tactics_enemies.keys#我在$game系统中。战术敌人。关键
  123.       enemy = $game_map.events[i]# 敌人=$游戏地图事件[i]
  124.       if !$game_system.tactics_enemies[i].dead? then#如果$游戏系统战术敌人[i]。死去的然后
  125.        @battlers_array.push(enemy)#@战列兵阵列。推进(敌人)
  126.      end
  127.     end
  128.  
  129.     @battlers_array.sort! {|a,b| a.at - b.at } #@战列兵阵列。分类{|a,b|a在-b在}
  130.   end
  131.  
  132.  
  133.   def dispose#def处置
  134.     @base.dispose#@底部排水管
  135.     @icon_set.each { |set| set[0].dispose}#@图标设置。每个{|集|集[0].dispose}
  136.   end
  137. end

RUBY 代码复制
  1. class Game_Character
  2.   #--------------------------------------------------------------------------
  3.   # ● 指定イベントに近づく
  4.   #--------------------------------------------------------------------------
  5.   def move_toward_event(id)
  6.     # 指定イベントの座標との差を求める
  7.     sx = @x - $game_map.events[id].x
  8.     sy = @y - $game_map.events[id].y
  9.     # 座標が等しい場合
  10.     if sx == 0 and sy == 0
  11.       return
  12.     end
  13.     # 差の絶対値を求める
  14.     abs_sx = sx.abs
  15.     abs_sy = sy.abs
  16.     # 横の距離と縦の距離が等しい場合
  17.     if abs_sx == abs_sy
  18.       # ランダムでどちらかを 1 増やす
  19.       rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  20.     end
  21.     # 横の距離のほうが長い場合
  22.     if abs_sx > abs_sy
  23.       # 左右方向を優先し、指定イベントのいるほうへ移動
  24.       sx > 0 ? move_left : move_right
  25.       if not moving? and sy != 0
  26.         sy > 0 ? move_up : move_down
  27.       end
  28.     # 縦の距離のほうが長い場合
  29.     else
  30.       # 上下方向を優先し、指定イベントのいるほうへ移動
  31.       sy > 0 ? move_up : move_down
  32.       if not moving? and sx != 0
  33.         sx > 0 ? move_left : move_right
  34.       end
  35.     end
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 指定イベントから遠ざかる
  39.   #--------------------------------------------------------------------------
  40.   def move_away_from_event(id)
  41.     # 指定イベントの座標との差を求める
  42.     sx = @x - $game_map.events[id].x
  43.     sy = @y - $game_map.events[id].y
  44.     # 座標が等しい場合
  45.     if sx == 0 and sy == 0
  46.       return
  47.     end
  48.     # 差の絶対値を求める
  49.     abs_sx = sx.abs
  50.     abs_sy = sy.abs
  51.     # 横の距離と縦の距離が等しい場合
  52.     if abs_sx == abs_sy
  53.       # ランダムでどちらかを 1 増やす
  54.       rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  55.     end
  56.     # 横の距離のほうが長い場合
  57.     if abs_sx > abs_sy
  58.       # 左右方向を優先し、指定イベントのいないほうへ移動
  59.       sx > 0 ? move_right : move_left
  60.       if not moving? and sy != 0
  61.         sy > 0 ? move_down : move_up
  62.       end
  63.     # 縦の距離のほうが長い場合
  64.     else
  65.       # 上下方向を優先し、指定イベントのいないほうへ移動
  66.       sy > 0 ? move_down : move_up
  67.       if not moving? and sx != 0
  68.         sx > 0 ? move_right : move_left
  69.       end
  70.     end
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 指定座標に近づく
  74.   #--------------------------------------------------------------------------
  75.   def move_toward_position(x, y)
  76.     # 座標の差を求める
  77.     sx = @x - x
  78.     sy = @y - y
  79.     # 座標が等しい場合
  80.     if sx == 0 and sy == 0
  81.       return
  82.     end
  83.     # 差の絶対値を求める
  84.     abs_sx = sx.abs
  85.     abs_sy = sy.abs
  86.     # 横の距離と縦の距離が等しい場合
  87.     if abs_sx == abs_sy
  88.       # ランダムでどちらかを 1 増やす
  89.       rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  90.     end
  91.     # 横の距離のほうが長い場合
  92.     if abs_sx > abs_sy
  93.       sx > 0 ? move_left : move_right
  94.       if not moving? and sy != 0
  95.         sy > 0 ? move_up : move_down
  96.       end
  97.     # 縦の距離のほうが長い場合
  98.     else
  99.       sy > 0 ? move_up : move_down
  100.       if not moving? and sx != 0
  101.         sx > 0 ? move_left : move_right
  102.       end
  103.     end
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 指定座標から遠ざかる
  107.   #--------------------------------------------------------------------------
  108.   def move_away_from_position(x, y)
  109.     # 座標の差を求める
  110.     sx = @x - x
  111.     sy = @y - y
  112.     # 座標が等しい場合
  113.     if sx == 0 and sy == 0
  114.       return
  115.     end
  116.     # 差の絶対値を求める
  117.     abs_sx = sx.abs
  118.     abs_sy = sy.abs
  119.     # 横の距離と縦の距離が等しい場合
  120.     if abs_sx == abs_sy
  121.       # ランダムでどちらかを 1 増やす
  122.       rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  123.     end
  124.     # 横の距離のほうが長い場合
  125.     if abs_sx > abs_sy
  126.       sx > 0 ? move_right : move_left
  127.       if not moving? and sy != 0
  128.         sy > 0 ? move_down : move_up
  129.       end
  130.     # 縦の距離のほうが長い場合
  131.     else
  132.       sy > 0 ? move_down : move_up
  133.       if not moving? and sx != 0
  134.         sx > 0 ? move_right : move_left
  135.       end
  136.     end
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● 指定イベントの方を向く
  140.   #--------------------------------------------------------------------------
  141.   def turn_toward_event(id)
  142.     # 指定イベントの座標との差を求める
  143.     sx = @x - $game_map.events[id].x
  144.     sy = @y - $game_map.events[id].y
  145.     # 座標が等しい場合
  146.     if sx == 0 and sy == 0
  147.       return
  148.     end
  149.     # 横の距離のほうが長い場合
  150.     if sx.abs > sy.abs
  151.       # 左右方向で指定イベントのいるほうを向く
  152.       sx > 0 ? turn_left : turn_right
  153.     # 縦の距離のほうが長い場合
  154.     else
  155.       # 上下方向で指定イベントのいるほうを向く
  156.       sy > 0 ? turn_up : turn_down
  157.     end
  158.   end
  159.   #--------------------------------------------------------------------------
  160.   # ● 指定イベントの逆を向く
  161.   #--------------------------------------------------------------------------
  162.   def turn_away_from_event(id)
  163.     # 指定イベントの座標との差を求める
  164.     sx = @x - $game_map.events[id].x
  165.     sy = @y - $game_map.events[id].y
  166.     # 座標が等しい場合
  167.     if sx == 0 and sy == 0
  168.       return
  169.     end
  170.     # 横の距離のほうが長い場合
  171.     if sx.abs > sy.abs
  172.       # 左右方向で指定イベントのいないほうを向く
  173.       sx > 0 ? turn_right : turn_left
  174.     # 縦の距離のほうが長い場合
  175.     else
  176.       # 上下方向で指定イベントのいないほうを向く
  177.       sy > 0 ? turn_down : turn_up
  178.     end
  179.   end
  180.   #--------------------------------------------------------------------------
  181.   # ● 指定座標の方を向く
  182.   #--------------------------------------------------------------------------
  183.   def turn_toward_position(x, y)
  184.     # 座標の差を求める
  185.     sx = @x - x
  186.     sy = @y - y
  187.     # 座標が等しい場合
  188.     if sx == 0 and sy == 0
  189.       return
  190.     end
  191.     # 横の距離のほうが長い場合
  192.     if sx.abs > sy.abs
  193.       sx > 0 ? turn_left : turn_right
  194.     # 縦の距離のほうが長い場合
  195.     else
  196.       sy > 0 ? turn_up : turn_down
  197.     end
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● 指定座標の逆を向く
  201.   #--------------------------------------------------------------------------
  202.   def turn_away_from_position(x, y)
  203.     # 座標の差を求める
  204.     sx = @x - x
  205.     sy = @y - y
  206.     # 座標が等しい場合
  207.     if sx == 0 and sy == 0
  208.       return
  209.     end
  210.     # 横の距離のほうが長い場合
  211.     if sx.abs > sy.abs
  212.       sx > 0 ? turn_right : turn_left
  213.     # 縦の距離のほうが長い場合
  214.     else
  215.       sy > 0 ? turn_down : turn_up
  216.     end
  217.   end
  218.   #--------------------------------------------------------------------------
  219.   # ● 指定範囲内をランダムに移動
  220.   #--------------------------------------------------------------------------
  221.   def move_random_area(x, y, distance)
  222.     # 自分とエリア中心の座標の差を求める
  223.     sx = @x - x
  224.     sy = @y - y
  225.     # 既に範囲外にいる場合
  226.     if sx.abs + sy.abs > distance
  227.       # エリア中心に近づく
  228.       move_toward_position(x, y)
  229.       return
  230.     end
  231.     # とりあえずどの方向に進むか決定した後に距離判定
  232.     case rand(4)
  233.     when 0  # 下に移動
  234.       if sx.abs + sy < distance
  235.         move_down(false)
  236.       end
  237.     when 1  # 左に移動
  238.       if -sx + sy.abs < distance
  239.         move_left(false)
  240.       end
  241.     when 2  # 右に移動
  242.       if sx + sy.abs < distance
  243.         move_right(false)
  244.       end
  245.     when 3  # 上に移動
  246.       if sx.abs - sy < distance
  247.         move_up(false)
  248.       end
  249.     end
  250.   end
  251. end

空轨顺序栏.png (154.92 KB, 下载次数: 1)

空轨顺序栏.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-26 18:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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