请选择 进入手机版 | 继续访问电脑版

站内搜索

搜索
热搜: 活动 交友 discuz

iFAction 世界需要你的想象力!

[原创] 【ACT教程】打怪获得的经验值转变为道具经验卡

6

主题

14

帖子

134

积分

iF基础方块

Rank: 3Rank: 3

积分
134
发表于 2022-7-15 20:57:57 | 显示全部楼层 |阅读模式
本帖最后由 Heiko 于 2022-7-17 17:19 编辑

前言
*真实的目的:发发帖子蹭蹭经验..
*虚假的目的:教程就放这里,如果有萌新(我也是萌新用了没到半个月)看到就可以学会了,写的很详细,不过估计我的帖子会挂在前排很久2333...

正题01.打怪经验存进变量
*既然是把打怪获得的经验转为道具,首先就是要知道在脚本中打怪时角色获得经验这段脚本在哪里,翻了翻貌似是这里,为什么用貌似,因为我也不会脚本无法十足肯定hh

在LEnemy中160多行这里,死亡后添加物品和经验。 用搜索也可以快速定位到这里来。
  1. RV.GameData.actor.exp += cof.exp
复制代码
这段就是给角色增加你在数据库给敌人设定好的经验值


那么知道这段脚本的意思后就很好操作了,我们只需要把打怪获得的经验值代入变量,一切就简简单单。那么获取变量ID的脚本是:
  1. RV.GameData.value[id]
复制代码
那么给这个变量增加打怪获得的经验值该怎么写?根据原本的照抄就可以了,在数据库中新建一个变量,命名为打怪获得的经验值,我建了个61号变量:
  1. RV.GameData.value[61] += cof.exp   
复制代码
打怪获得的经验已经拿到手,那么角色是否就没必要再获取一遍?是的,把 RV.GameData.actor.exp += cof.exp 这一段注释掉或者删除掉,在脚本前面加 // 就是注释;
Ps:注释的东西给人看的不是给机器看的所以程序不会运行,如果删除就没了,注释后就留在那方便恢复。 " // "是单行注释。

注释掉原来的,加上变量增加的,红框外的不需要加(红框外的为+额外经验值,可获得经验值+变量乘可获得的经验值可做出额外获得25%经验,额外100%经验的效果,下次讲吧 = =):



做到这一步已经实现了把角色打怪获得的经验存进了61号变量中,而角色不会再获得经验。


02.存进变量的经验转为经验卡道具
*明确目标:我需要在变量(获得的经验)大于等于100点时变成一张经验卡给到我,那么就需要用到循环去判断


新建一个通用触发器,勾选 √自动执行 以及 并行处理开始条件不用设置。这样它就会一直执行~
新建一个变量命名可获得的经验卡数量,图中我们先从条件分歧开始看,新建一个条件分歧,如果打怪获得的经验值变量>=100,在满足执行中插入循环,在循环中设置截图的内容

截图中的脚本为添加物品的脚本(自己做个道具命名为经验卡):
  1. RV.GameData.addItem(数据库物品类型, 物品ID,数量)   //数据库物品类型: 0为物品 1为武器 2为防具
复制代码
所以截图中流程的意思为:如果打怪获得的经验值大于等于100时,循环执行打怪获得的经验值61号变量的值-100 , 可获得的经验卡数量62号变量的值+1 ,如果打怪获得的经验值61号变量的值小于100了,那就给我们增加数量为可获得的经验卡数量62号变量的值的27号物品,然后中断循环。直到下一次满足条件再次循环,确保每次循环完可获得的经验卡数量62号变量的值都为0(不然就会不断叠加),所以需要在触发器开头加上截图的设置。

最后再建一个通用触发器,设置增加角色经验值100,在道具中设置执行的通用触发器选这个就可以了,使用范围为使用者自身。


教程到这里基本结束了,但是还可以做的更好,以上教程毕竟是做了100点经验换一张卡,对初期还很好,但对于前中后期100点经验卡可谓是微乎其微,如果一个怪2000经验,你就会获得20张100点的经验卡,使用繁琐不说,携带数量也很快会达到上限,那该怎么做到,一次性获得过千经验时给我等同数量的1000点的经验卡而不是几十张100点经验卡呢? 往里再套分歧!
根据上面教程的方法,再加一条分歧,把需要改的数值改为1000,条件分歧不满足上述条件勾上,按截图操作,红框是我们已经做好的,绿框是新加进来的。
大概意思则是:如果满足>=1000点经验的条件,则执行它的循环,否则如果满足>=100点经验的条件,则执行它的循环。
顺序很重要,要从大到小进行判断
还要记得再建一个道具为1000点经验卡,再建一个通用触发器,在里面给角色+1000点经验,1000点经验卡道具 执行这个通用触发器。


这样打怪一次性获得的过千经验就会转为等同数量的1000点经验卡给我们,不足1000点经验则转为等同数量的100点经验卡给我们。

Tips:有需要可以设立NPC,100点经验卡10张换1000之类的,免得道具达到上限带来的不便。

以上教程结束!

=================================================

一些可拓展的想法:

1.设置一个选项/按钮,开启后角色身上每携带10张100点经验卡自动转为1张1000点经验卡

2.设置一个选项/按钮,开启后只要角色身上携带了100点经验卡则自动使用,可以用增减物品的办法,也可以用脚本执行角色使用物品(使用物品脚本一次性用很多会造成卡顿)
  1. RV.GameData.useItem(物品id,数量,类型)  //类型: 0为物品 1为武器 2为防具
复制代码











本帖子中包含更多资源

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

x

评分

参与人数 2金钱 +31 收起 理由
御丶 + 9 只要是技巧贴!就得赞
小八馍馍 + 22 很给力!

查看全部评分

黄粱一梦终不悔

43

主题

466

帖子

3254

积分

管理员

Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22

积分
3254

iFAction官方导师

发表于 2022-7-17 23:12:28 | 显示全部楼层
是个很有趣的功能哎
欢迎来到iFAction的大家庭,世界需要你的想象力!
下面是为你准备的各种传送门,祝你在这里玩的开心~
|下载iFAction最新版 |iFAction教学区 |iFAction提问区| 素材交流| 游戏发布区| 喝茶聊天嗑瓜子的欢乐水区|
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们
QQ群:977585123
iFAction下载
Windows客户端
反馈
意见建议
iFAction

iFAction

京ICP备15053274号-1

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.