请问如何实现“随机获得道具功能?”



  • 请教各路大神,我学会了RPG教学视频里的,将道具数值加到道具数组里的方法。现在我想实现“按下一个按钮”,随机获得100个道具中的1个。
    这个事件要怎么写?谢谢指教,越详细越好。
    感谢不尽



  • 首先如果道具数组的x轴放置的是道具的uid,那么使用一下代码获取道具数组中的一个随机道具的uid。

    道具数组.at(int(random(道具数组.width))

    这样可以随机获取道具数组里面的随机道具

    如果是随机掉落道具,只需要把所有道具添加到同类组,然后创建一个同类组就行了



  • 你好,我需要的是你说的第二种情况,随机掉落道具的情况。我已经将所有的道具添加到同类组。
    请问如何能“将同类组的某一行数据随机得添加到道具数组里”。这个表达式如何写?



  • @唤境用户92966916 “将同类组的某一行数据随机的添加到道具数组里”,这个随机是指谁随机?首先同类组跟对象类似,所以要拿到它的实例变量,也是需要有具体的实例的,所以:

    • 如果随机指的是随机一个同类组的某个实例变量存到道具数组里,就需要当前场景存在所有的道具对象实例,才能随机选中一个道具同类组实例,并把它的实例变量添加到道具数组中。

    • 如果随机指的是“将道具同类组的某个实例变量存入数组”这件事的触发概率,则可以用概率组件的【概率触发】条件 或 random()表达式来获得一个随机数并根据该随机数所在结果范围来判定该事件是否触发。

    如果你是第一种情况,并且不想放一堆实例在场景中,那么你需要把所有道具的默认属性存到数组里作为数据查询用。目前快速录入数据到数组的话,有这么几种方法:

    • 一种是从外部导入数据,这个需要用到xml组件(官方教程在这https://www.evkworld.com/learn/295),你把所有道具的属性和其他效果内容等写在xml文件后,导入xml文件到引擎中,然后用xml组件把数据循环读入数组,之后通过这个数组来获取对应道具的对应数据即可,但这个方法可能上手门槛比较高。

    • 另一种是把所有道具的实例放在初始场景,然后用【系统条件-遍历循环】来遍历道具同类组,具体事件差不多是这样:
      6e266095-3b11-44aa-b688-a04cb24eb49e-image.png
      这种做法的话,建议在标题画面前加多一个数据初始化的场景,所有道具的初始实例都放在这个场景中,把所有道具加载完毕后再正式开始游戏,跳到初始的游戏标题画面所在的场景。

    如果以上情况都不是,那你就要好好详细地描述你的具体问题到底是啥了😂