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

Project1

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

[有事请教] 获取角色代码

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3186
在线时间
1863 小时
注册时间
2010-6-19
帖子
1205
跳转到指定楼层
1
发表于 2023-11-16 15:37:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
下面这段脚本里面如何获取宠物ID的代码,

在脚本里加入了宠物脚本,找半天没找到宠物ID的代码是哪条,

如:p $game_actors[actor_id].hp 可以得到角色的气血

宠物的气血应该怎么查看 $game_actors[actor_id].kds_baby.hp 这样显示好像不行~



RUBY 代码复制
  1. #==============================================================================
  2. # ■ Game_Actor
  3. #------------------------------------------------------------------------------
  4. #  处理角色的类。本类在 Game_Actors 类 ($game_actors)
  5. # 的内部使用、Game_Party 类请参考 ($game_party) 。
  6. #==============================================================================
  7.  
  8. class Game_Actor < Game_Battler
  9.   alias kds_setup setup
  10.   def setup(actor_id)
  11.     # 宠物id的数组
  12.     if @baby == nil
  13.       @baby = []
  14.     end
  15.     # 当前宠物的潜力点
  16.     if @qianli == nil
  17.       @qianli = 0
  18.     end
  19.     # 参战  
  20.     if @kds_canzhan == nil
  21.       @kds_canzhan = 0
  22.     end
  23.     # 暂不明用途
  24.     @bbzh = []
  25.     # 设置宠物
  26.     kds_setup(actor_id)
  27.   end
  28.   # 返回 宠物id的数组
  29.   def kds_baby
  30.     return @baby
  31.   end
  32.   # 修改参战数据并返回
  33.   def kds_canzhan=(kds_canzhan)
  34.     @kds_canzhan = kds_canzhan
  35.     return @kds_canzhan
  36.   end
  37.   # 返回参战信息
  38.   def kds_canzhan
  39.     return @kds_canzhan
  40.   end
  41.   # 修改主人数据并返回
  42.   def zhuren=(zhuren)
  43.     @zhuren = zhuren
  44.     return @zhuren
  45.   end
  46.   # 返回主人信息
  47.   def zhuren
  48.     return @zhuren
  49.   end
  50.   # 以下暂不明用途
  51.   def ac_id=(ac_id)
  52.     @ac_id = ac_id
  53.     return @ac_id
  54.   end
  55.   def ac_id
  56.     return @ac_id
  57.   end
  58.   def bbzh
  59.     return @bbzh
  60.   end
  61. end
  62.  
  63. #==============================================================================
  64. # ■ Game_Party
  65. #------------------------------------------------------------------------------
  66. #  处理同伴的类。包含金钱以及物品的信息。本类的实例
  67. # 请参考 $game_party。
  68. #==============================================================================
  69.  
  70. class Game_Party
  71.   #--------------------------------------------------------------------------
  72.   # ● 加入同伴
  73.   #     actor_id : 角色 ID
  74.   #--------------------------------------------------------------------------  
  75.   def add_actor(actor_id)
  76.     # 获取角色
  77.     actor = $game_actors[actor_id]
  78.     # 小于50的为角色
  79.     if actor_id <= 50
  80.       # 同伴人数未满 5 人、本角色不在队伍中的情况下 (防止角色突破5个)
  81.       if @actors.size < 5 and not @actors.include?(actor)
  82.         # 添加角色
  83.         @actors.push(actor)
  84.  
  85.         # 初始化HP、SP
  86.         $game_actors[actor_id].hp = $game_actors[actor_id].maxhp
  87.         $game_actors[actor_id].sp = $game_actors[actor_id].maxsp
  88.         # 初始化角色潜能
  89.         $game_actors[actor_id].qianli = 4 * $game_actors[actor_id].level
  90.         # 初始化属性点
  91.         $game_actors[actor_id].gg =
  92.         $game_actors[actor_id].lx =
  93.         $game_actors[actor_id].ll =
  94.         $game_actors[actor_id].mj = 1 * $game_actors[actor_id].level
  95.  
  96.         # 刷新队伍
  97.         $game_player.refresh
  98.       elsif @actors.size == 5
  99.         $队伍满员 = true
  100.       end
  101.     # ** 宠物 $game_variables[1] 主人ID? 1号变量
  102.     # 设置角色可带召唤兽的数量
  103.     elsif $game_actors[$game_variables[1]].kds_baby.include?(actor_id) == false and
  104.       # 可以携带10只宠物
  105.       $game_actors[$game_variables[1]].kds_baby.size < 10
  106.       $game_actors[$game_variables[1]].kds_baby.push(actor_id)
  107.       # ** 确认$game_variables[1] 是主人
  108.       $game_actors[actor_id].zhuren = $game_variables[1]
  109.     end
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # ● 角色离开
  113.   #     actor_id : 角色 ID
  114.   #--------------------------------------------------------------------------  
  115.   def remove_actor(actor_id)
  116.     # 宠物的场合
  117.     if actor_id > 50
  118.       # 放生宠物      
  119.       $game_actors[$game_variables[1]].kds_baby.delete(actor_id)
  120.       # 重新设置参战信息
  121.       if $game_actors[$game_variables[1]].kds_canzhan == actor_id
  122.         # 移除参战宠物【召还】
  123.         $game_actors[$game_variables[1]].kds_canzhan = 0
  124.       end
  125.     else
  126.       # 宠物离开队伍
  127.       $game_actors[actor_id].kds_baby.clear
  128.       # 角色离开队伍
  129.       @actors.delete($game_actors[actor_id])
  130.     end
  131.     # ** 刷新
  132.     $game_player.refresh
  133.   end
  134. end


Lv4.逐梦者

梦石
0
星屑
6296
在线时间
1104 小时
注册时间
2015-8-15
帖子
658
2
发表于 2023-11-16 16:56:43 | 只看该作者
本帖最后由 金芒芒 于 2023-11-16 17:22 编辑

alias kds_setup setup
  def setup(actor_id)
alias这个就是宠物
kds_baby.include?(actor_id) == false
$game_actors[$game_variables[1]].kds_baby.push(actor_id)
你要主人3号添加携带宠物一号
$game_actors[$game_variables[3]].kds_baby.push(1)
if @Baby == nil
      @Baby = []这个是个数组你要多少宠物ID多放这里上面才可以主人添加宠物所有数组中的ID

p  $game_actors[$game_variables[1]].kds_baby



有个复制提取事件脚本
#==============================================================================
# ☆★☆ 提取放置物脚本(强化) ☆★☆  
#------------------------------------------------------------------------------
# - 美兽
# - 2007.4.12
#------------------------------------------------------------------------------
#  爱护环境,人人有责,现实中切勿乱丢垃圾。
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
#  脚本原理:
#  是从仓库地图中提取事件,将其拷贝放入指定的位置,
#  依此达成随时随地生成新事件的功能,如此可节省大量用RGSS编写事件所消耗的体力,很多地方写的
#  很保守,尽量减少冲突几率。。
#  此为强化版,可实现新事件的保存,但代价是冲突的随之增大,若只想单纯实现ARPG
#  一类的物品掉落,场所移动后便清除,请使用简洁版。
#------------------------------------------------------------------------------
=begin
                                Note:
  
一:生成物品主方法:
    Drop_Item.make_events(map_id,event_id,item_x,item_y,save=false)
    map_id : 仓库地图的ID。
    event_id : 仓库中对应事件的ID。
    item_x、item_y :新事件的X与Y坐标
    save : 是否存储标志;
           默认为false,即不存储,场所移动等转换场景后事件会消失;
           true 为存储,取档、关机、登火星,返回后事件仍存在。
           
二:删除事件方法:
    事件名若包含"delete"字段,则执行完毕会立即自我清除;
    注:任何事件皆如此。

三:必掌握语句:
    $game_map.events[@event_id]
    $game_player
    事件的脚本使用,表示“本事件”和“角色”,主要为取得事件的坐标,
    取得“本事件”X与Y坐标:$game_map.events[@event_id].x
                            $game_map.events[@event_id].y
    取得“角色”X与Y坐标:$game_player.x
                          $game_player.y                           
    例如,在某事件左侧生成2号地图的2号事件并永久存储,写法如下。
    x = $game_map.events[@event_id].x
    y = $game_map.events[@event_id].y
    Drop_Item.make_events(2,2,x-1,y,true)

四:备注:
    此脚本用法十分灵活,种植、建设、舍弃、掉宝等功能都可用以达成。   

=end
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3186
在线时间
1863 小时
注册时间
2010-6-19
帖子
1205
3
 楼主| 发表于 2023-11-16 17:51:43 | 只看该作者
金芒芒 发表于 2023-11-16 16:56
alias kds_setup setup
  def setup(actor_id)
alias这个就是宠物

我知道p  $game_actors[$game_variables[1]].kds_baby可以P出宠物ID,我想重新赋值宠物的属性,比如HP=MAXHP,人物的话是$game_actors[actor_id].hp = $game_actors[actor_id].maxhp就可以,
宠物我试着
$game_actors[$game_variables[1]].kds_baby.hp = $game_actors[$game_variables[1]].kds_baby.maxhp
直接脚本错误了。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6296
在线时间
1104 小时
注册时间
2015-8-15
帖子
658
4
发表于 2023-11-16 18:07:07 | 只看该作者
本帖最后由 金芒芒 于 2023-11-16 18:11 编辑

宠物是人物数据库里还是脚本
模型
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6296
在线时间
1104 小时
注册时间
2015-8-15
帖子
658
5
发表于 2023-11-16 18:08:08 | 只看该作者
黑米馒头 发表于 2023-11-16 17:51
我知道p  $game_actors[$game_variables[1]].kds_baby可以P出宠物ID,我想重新赋值宠物的属性,比如HP=MA ...

那你宠物在人物数据库还在模型里

点评

宠物数据库里ID>50的角色为宠物  发表于 2023-11-16 18:29
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6296
在线时间
1104 小时
注册时间
2015-8-15
帖子
658
6
发表于 2023-11-16 18:43:30 | 只看该作者
本帖最后由 金芒芒 于 2023-11-16 18:55 编辑

如果主人(1)携带的宠物ID包括1
Hp=角色(ID50-0)HP
或者p场景@Baby
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5680
在线时间
782 小时
注册时间
2019-1-20
帖子
191
7
发表于 2023-11-18 12:10:23 | 只看该作者
因为脚本不全,我说的未必都对,
看已有的脚本,你可以认为宠物就是角色,只是多了一些宠物的属性,
另外进入/移除都得针对宠物进行特定的处理,
所以直接 宠物的hp  $game_actors[actor_id].hp 这样

点评

和我最后用的方法一样,确实可以  发表于 2023-11-20 21:28

提高解答机会的方法:
看一下对应版本的帮助文件 看天气预报说今天不下雨
改变问题为更有可能的或常见的 如:天气自动变化下雨→天气系统 果然不准呀~
使用论坛的搜索功能查找相关问题 好丧啊... ...想看女装
清楚说明实际上你想解决的问题  想看坛友的女装  
脚本自己有改过的地方要标明  不要遮脸的
脚本有问题但不是默认的要全部贴出来 大胆点,尽情发
三包原则:包有BUG,包甩锅,包咕咕
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6296
在线时间
1104 小时
注册时间
2015-8-15
帖子
658
8
发表于 2023-11-19 20:57:40 | 只看该作者
p  $game_actors[$game_variables[1]].kds_baby[0]
因为主人最多可携带10宠物,这样主人携带的第一个宠物属性基本可以P出来
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 09:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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