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

Project1

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

[已经过期] 关于属性

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2010-11-11
帖子
111
跳转到指定楼层
1
发表于 2011-1-3 18:05:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 Hjdie 于 2011-1-3 18:06 编辑

我想做个在获得变量1的增加的时候。人物的HP,攻击力增加。
于是我动手做了。
我做了3个并行事件。
分别用来处理人物的HP和攻击力增加。
最后我建了1个并行事件来判断什么时候变量1的获得。
我的想法
将变量1力量做1个记忆变量。然后不断判断记忆变量是否等于变量1的变量。如果不等于。就用现有变量-记忆变量获得差额。给予力量加成
- -。然后就是这个想法咋实现啊。。。我已经试了很多次了。。。
附上我自己做的工程。。。
附件

Lv2.观梦者

梦石
0
星屑
266
在线时间
122 小时
注册时间
2010-12-23
帖子
179
2
发表于 2011-1-3 20:11:19 | 只看该作者
本帖最后由 双叶GL 于 2011-1-3 20:32 编辑


做一个状态不可以吗?状态有个属性增加HP或者力量的百分比




这样的操作吗?


双叶GL于2011-1-3 20:35补充以下内容:
别老用并行,并行的意思是,在你事件发生时也会一同进行,你既然有开关操作就用自动好些,不然多了会很卡的

点评

啧!不是这样的啊。  发表于 2011-1-3 20:55
- -。就是变量1+1,角色HP,攻击+10。如何判断变量1什么时候加了。什么时候没加。  发表于 2011-1-3 20:22
- -作图太麻烦了,又是PS又是素材的
还不如玩游戏实际- -嗯嗯,娱乐就好!!

=====================
神马都简单,但是需要时间&精力,虽然我时间很多,但是专注一样东西的精力- -
====================
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2010-11-11
帖子
111
3
 楼主| 发表于 2011-1-3 20:57:41 | 只看该作者
本帖最后由 Hjdie 于 2011-1-3 20:59 编辑

回复 双叶GL 的帖子

我说的是
变量1=力量(代号。也可以是其他的如。智力。敏捷)
这个变量影响角色的属性。
比如+1。角色就HP+10。攻击+10
我头痛的是,我要创建一个循环的不断判断的事件来判断。现在有没有增加力量点数。如果有,那么就给角色的HP+10,攻击+10。

当然。在通常意义上来说,我可以把这个操作放入增加力量的那一个处理中。不过如果这样做。一定会让事件更加复杂了。。。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1748
在线时间
485 小时
注册时间
2006-1-7
帖子
1073
4
发表于 2011-1-3 21:23:31 | 只看该作者
变量1会有哪几种方式来增加呢?
人工操作?物品使用?还是怎么的?
分析一下,然后在变量1有可能改动的进行判断,比你全程扫描式的判断要节省得多

点评

= =。因为什么方式都有。人工加点,吃野生的猪骨汤,被动技能,装备附加。。。  发表于 2011-1-3 21:39
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
12 小时
注册时间
2010-9-11
帖子
9
5
发表于 2011-1-3 21:55:33 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
6
发表于 2011-1-3 22:27:25 | 只看该作者

  1. $占用的变量位置 = 1 #1号变量控制
  2. $倍率 = 2 #1变量为2力量
  3. #==============================================================================
  4. # ■ 应该只需要力量吧?
  5. #==============================================================================
  6. class Interpreter
  7.   def command_122
  8.     # 初始化值
  9.     value = 0
  10.     shizi = $game_variables[$占用的变量位置]
  11.     # 操作数的分支
  12.     case @parameters[3]
  13.     when 0  # 恒量
  14.       value = @parameters[4]
  15.     when 1  # 变量
  16.       value = $game_variables[@parameters[4]]
  17.     when 2  # 随机数
  18.       value = @parameters[4] + rand(@parameters[5] - @parameters[4] + 1)
  19.     when 3  # 物品
  20.       value = $game_party.item_number(@parameters[4])
  21.     when 4  # 角色
  22.       actor = $game_actors[@parameters[4]]
  23.       if actor != nil
  24.         case @parameters[5]
  25.         when 0  # 等级
  26.           value = actor.level
  27.         when 1  # EXP
  28.           value = actor.exp
  29.         when 2  # HP
  30.           value = actor.hp
  31.         when 3  # SP
  32.           value = actor.sp
  33.         when 4  # MaxHP
  34.           value = actor.maxhp
  35.         when 5  # MaxSP
  36.           value = actor.maxsp
  37.         when 6  # 力量
  38.           value = actor.str
  39.         when 7  # 灵巧
  40.           value = actor.dex
  41.         when 8  # 速度
  42.           value = actor.agi
  43.         when 9  # 魔力
  44.           value = actor.int
  45.         when 10  # 攻击力
  46.           value = actor.atk
  47.         when 11  # 物理防御
  48.           value = actor.pdef
  49.         when 12  # 魔法防御
  50.           value = actor.mdef
  51.         when 13  # 回避修正
  52.           value = actor.eva
  53.         end
  54.       end
  55.     when 5  # 敌人
  56.       enemy = $game_troop.enemies[@parameters[4]]
  57.       if enemy != nil
  58.         case @parameters[5]
  59.         when 0  # HP
  60.           value = enemy.hp
  61.         when 1  # SP
  62.           value = enemy.sp
  63.         when 2  # MaxHP
  64.           value = enemy.maxhp
  65.         when 3  # MaxSP
  66.           value = enemy.maxsp
  67.         when 4  # 力量
  68.           value = enemy.str
  69.         when 5  # 灵巧
  70.           value = enemy.dex
  71.         when 6  # 速度
  72.           value = enemy.agi
  73.         when 7  # 魔力
  74.           value = enemy.int
  75.         when 8  # 攻击力
  76.           value = enemy.atk
  77.         when 9  # 物理防御
  78.           value = enemy.pdef
  79.         when 10  # 魔法防御
  80.           value = enemy.mdef
  81.         when 11  # 回避修正
  82.           value = enemy.eva
  83.         end
  84.       end
  85.     when 6  # 角色
  86.       character = get_character(@parameters[4])
  87.       if character != nil
  88.         case @parameters[5]
  89.         when 0  # X 坐标
  90.           value = character.x
  91.         when 1  # Y 坐标
  92.           value = character.y
  93.         when 2  # 朝向
  94.           value = character.direction
  95.         when 3  # 画面 X 坐标
  96.           value = character.screen_x
  97.         when 4  # 画面 Y 坐标
  98.           value = character.screen_y
  99.         when 5  # 地形标记
  100.           value = character.terrain_tag
  101.         end
  102.       end
  103.     when 7  # 其它
  104.       case @parameters[4]
  105.       when 0  # 地图 ID
  106.         value = $game_map.map_id
  107.       when 1  # 同伴人数
  108.         value = $game_party.actors.size
  109.       when 2  # 金钱
  110.         value = $game_party.gold
  111.       when 3  # 步数
  112.         value = $game_party.steps
  113.       when 4  # 游戏时间
  114.         value = Graphics.frame_count / Graphics.frame_rate
  115.       when 5  # 计时器
  116.         value = $game_system.timer / Graphics.frame_rate
  117.       when 6  # 存档次数
  118.         value = $game_system.save_count
  119.       end
  120.     end
  121.     # 循环全部操作
  122.     for i in @parameters[0] .. @parameters[1]
  123.       # 操作分支
  124.       case @parameters[2]
  125.       when 0  # 代入
  126.         $game_variables[i] = value
  127.       when 1  # 加法
  128.         $game_variables[i] += value
  129.       when 2  # 减法
  130.         $game_variables[i] -= value
  131.       when 3  # 乘法
  132.         $game_variables[i] *= value
  133.       when 4  # 除法
  134.         if value != 0
  135.           $game_variables[i] /= value
  136.         end
  137.       when 5  # 剩余
  138.         if value != 0
  139.           $game_variables[i] %= value
  140.         end
  141.       end
  142.       # 检查上限
  143.       if $game_variables[i] > 99999999
  144.         $game_variables[i] = 99999999
  145.       end
  146.       # 检查下限
  147.       if $game_variables[i] < -99999999
  148.         $game_variables[i] = -99999999
  149.       end
  150.     end
  151.     # 刷新地图
  152.     $game_map.need_refresh = true
  153.     if $game_variables[$占用的变量位置] != shizi
  154.       shizi -= $game_variables[$占用的变量位置]
  155.       shizi *= $倍率
  156.       $game_actors[1].str_plus -= shizi
  157.     end
  158.     # 继续
  159.     return true
  160.   end
  161. end
复制代码

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3875
在线时间
1586 小时
注册时间
2006-5-5
帖子
2742
7
发表于 2011-1-4 09:52:15 | 只看该作者
是否先说一下你游戏的系统是什么,添加了哪些脚本。
我记得一般情况下可以直接用属性来解决的啊
步兵中尉
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2010-11-11
帖子
111
8
 楼主| 发表于 2011-1-4 12:52:55 | 只看该作者
本帖最后由 Hjdie 于 2011-1-5 21:55 编辑

各种回复:
首先游戏只需要3个基础属性。力量,智慧,敏捷
= =。此处的力量,智慧,敏捷均为自定义的属性。和XP规定的属性没有半毛钱的关系。
比如。XP规定角色力量+1,可以加10点HP,那么自定义的属性力量+1,可以加100点HP。
就是这种意思。
然后由基础属性引发出的扩展属性。如果HP,MP,物理攻击力。魔法攻击力,物理防御,魔法防御。。。等等。都是根据装备和基础属性来增加的
所以,如果我在每个增加自定义力量的地方在写上自定义力量的扩展属性加成。那么总有一些会漏掉。所以我想使用并行事件来判断整个游戏的3个基础自定义属性。
在确定了属性方针后,我觉得可以使用双循环的方法来写。
于是参考双循环的写法,自己制作了一个判断。不过总是有问题(如,力量和记忆力量总是出问题。力量加成无限制加。装备加了某个自定义属性后,不会减去相对应的加成。。等等)

游戏系统里没有使用任何脚本。- -。

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-21 00:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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