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

Project1

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

[有事请教] 请教一下关于物品使用者特殊效果

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1082
在线时间
162 小时
注册时间
2022-3-15
帖子
22
跳转到指定楼层
1
发表于 2022-6-17 11:41:09 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
萌新想请教一下,关于物品使用者特殊效果的问题。
是这样的,我想给技能增加一个功法层数,做了一个道具,使用道具触发公共事件,可以提升功法的层数,并增加属性。
目的达到了,但是角色和功法数量过多,写if判断就会特别乱,要判定每个角色是否学习了这个技能,或者是否有某个状态。
是否有办法判定使用者是谁,然后直接给这一个角色写判定呢?
这是我目前的写法,技能太多,角色太多的话,会非常混乱。
emmm,发不了图片,大概是这样的


:选择 外功 时
  ◆文本:无, 窗口, 底部
  :  :你想要提升的外功武学为
  ◆显示选项:剑法, 刀法, 拳掌, 暗器, 奇门, 不提升了 (窗口, 右侧, #1, #6)
  :选择 剑法 时
    ◆文本:无, 窗口, 底部
    :  :请选择你要提升的武学
    ◆显示选项:华山剑法, 不提升了 (窗口, 右侧, #1, #2)
    :选择 华山剑法 时
      ◆文本:无, 窗口, 底部
      :  :你要提升的角色为
      ◆显示选项:\N[1], \N[2], \N[3], \N[4], \N[5], 不提升了 (窗口, 右侧, #1, #6)
      :选择 \N[1] 时
        ◆如果:林枫 已学会 华山剑法
          ◆变量操作:#0101 华山剑法升阶 += 1
          ◆增减能力值:林枫, 最大 HP + 100
          ◆增减能力值:林枫, 攻击力 + 25
          ◆增减能力值:林枫, 敏捷 + 40
          ◆变量操作:#0100 卡灵精华-入门使用次数 -= 1
          ◆
        :否则
          ◆文本:无, 窗口, 底部
          :  :该角色未习得华山剑法,无法提升
          ◆
        :结束
        ◆




这是一个角色的的一个技能,全写出来太多了。

Lv3.寻梦者

梦石
0
星屑
1082
在线时间
162 小时
注册时间
2022-3-15
帖子
22
4
 楼主| 发表于 2022-6-19 17:39:57 | 只看该作者
Heiko 发表于 2022-6-17 16:18
放进条件分歧,如果角色拥有22号技能就怎样,否则就怎样 ,$gameParty._targetActorId 获取物品使用者的ID
...

多谢大佬
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1082
在线时间
162 小时
注册时间
2022-3-15
帖子
22
3
 楼主| 发表于 2022-6-17 17:38:46 | 只看该作者
Heiko 发表于 2022-6-17 16:18
放进条件分歧,如果角色拥有22号技能就怎样,否则就怎样 ,$gameParty._targetActorId 获取物品使用者的ID
...

感谢,我尝试了,这样的效果已经满足我的需求了,不过这样写的话,有脚本可以给这个角色增加属性么,我对脚本也不太熟悉,因为要判断,所以也不能在物品上加属性。。。。。

点评

2楼加上了  发表于 2022-6-17 18:13
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2389
在线时间
363 小时
注册时间
2021-2-8
帖子
149
2
发表于 2022-6-17 16:18:26 | 只看该作者
本帖最后由 Heiko 于 2022-6-17 21:07 编辑

放进条件分歧,如果角色拥有22号技能就怎样,否则就怎样 ,$gameParty._targetActorId 获取物品使用者的ID

这样就不必每个角色都去做判断

JAVASCRIPT 代码复制
  1. $gameActors.actor($gameParty._targetActorId).hasSkill(22);


判断是否拥有这个状态

JAVASCRIPT 代码复制
  1. $gameActors.actor($gameParty._targetActorId).hasState(id);


增加物品使用者的能力值,ID为能力值序号,0就是最大HP, 1是最大MP, 2攻击力, 3防御力, 4魔法攻击力, 5魔法防御力, 6敏捷, 7幸运

JAVASCRIPT 代码复制
  1. $gameActors.actor($gameParty._targetActorId).addParam(ID,+100);


再加一点吧,以下的可以拿来做升级卡之类的,比如升一级,true为显示升级信息,false为不显示

JAVASCRIPT 代码复制
  1. $gameActors.actor($gameParty._targetActorId).changeLevel($gameActors.actor($gameParty._targetActorId).level+1,true);


增加1000点经验值

JAVASCRIPT 代码复制
  1. $gameActors.actor($gameParty._targetActorId).gainExp(1000);


改名卡
JAVASCRIPT 代码复制
  1. var sRst=prompt("请输入名字:", "")
  2. $gameActors.actor($gameParty._targetActorId).setName(sRst)


其他:
.gainHp(n);          增减HP
.gainMp(n);          增减MP
.gainTp(n)             增减TP
.addState(n);        增加状态
.removeState(n);   去除状态
.learnSkill(n);        学习技能
.forgetSkill(n);       遗忘技能
.recoverAll();          单个角色全恢复, HPMP消除身上的状态等

我掌握的脚本不是很多,只能到这里了

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 05:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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