Project1

标题: 如何做一个搜集随机物品的任务。 [打印本页]

作者: 407005278    时间: 2017-10-13 23:14
标题: 如何做一个搜集随机物品的任务。
本帖最后由 407005278 于 2017-10-14 09:13 编辑

NPC随机在ID为x到y里面抽取一个道具(或者武器,防具)作为任务物品,并且需要的数量为随机。
如果仅仅是几个物品还可以一个一个分别设置,但是物品种类多起来之后就非常麻烦了。
实现这个任务的要做到两个方面:
1,如何在对话中显示此ID物品的名称。
2,赋予变量游戏数据时,指定是此ID的物品
2,在编辑器中,赋予变量游戏数据时,只能定义确定的ID,不能根据之前的设置,赋予这个变化的ID。

举个例子,如果任务是:需要1号道具 大宝剑 5个。(如果只是单纯的需要1号道具5个的话很简单,问题现在也有可能是需要2号,3号,4号等等,一个一个设置很麻烦)
1,在对话中显示:“英雄大人,请给我拿5把 大宝剑 ,我有特殊用处。”
2,交任务的时候,需要判断身上是否有5把 大宝剑 。编辑器设置是 变量操作----代入游戏数据----物品持有数,但是这个ID是固定的,如何设置这个物品ID是变量。





作者: xjzsq    时间: 2017-10-13 23:35
第一个可以通过条件分歧实现(如果会写代码的话也可以仿照识别\V[N]把他转换成N号变量的形式去改脚本增加一个\I[N]转换成N号物品的名字的功能......好吧当我没说)
第二个感觉问题说的不是很明白。
实现你这个功能可以先生成从X到Y的随机数,代入变量id中,然后在生成一个随机数,代入另一个变量b中去,然后条件分歧,如果id==X,X号物品增加b,如果id==X+1,X+1号物品增加b...以此类推。
好像还没有能直接变量操作物品数量的功能......
作者: 407005278    时间: 2017-10-14 09:16
xjzsq 发表于 2017-10-13 23:35
第一个可以通过条件分歧实现(如果会写代码的话也可以仿照识别\V[N]把他转换成N号变量的形式去改脚本增加一 ...

可能之前描述的不清楚,现在改了一下。。。
作者: xjzsq    时间: 2017-10-14 22:05
407005278 发表于 2017-10-14 09:16
可能之前描述的不清楚,现在改了一下。。。

针对第2条不如lz去官方提一下建议让他加上这个功能233
作者: 梦想家大魔王    时间: 2017-10-15 18:55
本来昨晚要回复的,但是突然断网……
楼主的问题,如果用脚本解决的话,so easy!
废话不多说,我发一个demo你看了就明白了。
使用方法:新建一个工程,把下载的压缩文件解压缩到新工程的根目录中,覆盖原文件。
随机物品_demo.rar (482.74 KB, 下载次数: 162)


作者: 407005278    时间: 2017-10-16 13:51
梦想家大魔王 发表于 2017-10-15 18:55
本来昨晚要回复的,但是突然断网……
楼主的问题,如果用脚本解决的话,so easy!
废话不多说,我发一个dem ...

非常有用 实在是太感谢了 抱一下大触的大腿!!
作者: yang1zhi    时间: 2017-10-16 16:36
要用脚本
//先设一个哈希表。:前面是任务会出现的ID,后面是这个ID要求的数量
var 任务ID列表及数量 =  {
1 : 5 , 2 : 5 , 3 : 5 , 4 : 5 , 5 : 5
}
//得到任务ID列表
var 任务ID列表 =  任务ID列表及数量.keys
//随机得到一个任务ID
var 任务ID = 任务ID列表[Math.round(Math.random() * (任务ID列表.length - 1)]
//把任务ID代入变量
$gameVariables._data[1] = 任务ID
//把任务数量代入变量
$gameVariables._data[2] = 任务ID列表及数量[任务ID]


//用习惯了脚本编辑器,经常输入完了,就点刷新。然后就没有然后了
作者: paopaolonggong    时间: 2020-8-31 22:03
梦想家大魔王 发表于 2017-10-15 18:55
本来昨晚要回复的,但是突然断网……
楼主的问题,如果用脚本解决的话,so easy!
废话不多说,我发一个dem ...

大魔王,你在这里也有ID 啊,我从 简书 上看见你 的 ,简书上的 教程 我对着来的,一接受任务,就被直接给与物品了
作者: 梦想家大魔王    时间: 2020-8-31 22:24
本帖最后由 梦想家大魔王 于 2020-8-31 22:31 编辑
paopaolonggong 发表于 2020-8-31 22:03
大魔王,你在这里也有ID 啊,我从 简书 上看见你 的 ,简书上的 教程 我对着来的,一接受任务,就被直接 ...


[line]那你肯定有地方做的跟我说的不一样,是不是漏掉了什么?[/line]
抱歉,刚才看了一下我写的东西,确实是首次对话后就给你任务物品。
因为demo里面并没有提供常规的获得物品的途径,所以直接给你,让你可以体验一下交任务的流程。
时间过于久远,我自己都记不太清楚,首次回答想当然了。
作者: paopaolonggong    时间: 2020-9-1 10:56
梦想家大魔王 发表于 2020-8-31 22:24
抱歉,刚才看了一下我写的东西,确实是首次对话后就给你任务物品。
因为demo里面并没有提供常规的获得物 ...

大佬,没想到你还在这个论坛啊,荣幸至极,请问怎么能改成 不获得物品,然后自己 去找啊》??
作者: 梦想家大魔王    时间: 2020-9-1 11:47
paopaolonggong 发表于 2020-9-1 10:56
大佬,没想到你还在这个论坛啊,荣幸至极,请问怎么能改成 不获得物品,然后自己 去找啊》?? ...

打开独立开关A的上面那一条执行脚本的命令删掉。就这行:
$gameParty.gainItem($dataItems[$gameVariables.value(1)], $gameVariables.value(3));

作者: paopaolonggong    时间: 2020-9-1 12:29
梦想家大魔王 发表于 2020-9-1 11:47
打开独立开关A的上面那一条执行脚本的命令删掉。就这行:

我去 ,好的 大佬 ,我去试试,这个 脚本 就是 给予的 意思啊 ,厉害 ,像这样的就属于 脚本了吧
作者: paopaolonggong    时间: 2020-9-2 08:53
梦想家大魔王 发表于 2020-9-1 11:47
打开独立开关A的上面那一条执行脚本的命令删掉。就这行:

成功了 ,大佬,哈哈哈哈,多谢




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1