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

Project1

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

[已经解决] 想请大触弄一个随机NPC脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
90
在线时间
357 小时
注册时间
2006-3-3
帖子
181
跳转到指定楼层
1
发表于 2015-11-19 12:22:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
7星屑
本帖最后由 duchen5779 于 2015-11-19 12:30 编辑

举个例子吧,200个NPC(没错,就是这么多……),15个地图,当某两个变量分别等于多少和多少的时候(一个等于30的倍数,另一个等于0或者1之类的),这200个NPC中随机挑出15个分别出现在这15个城市中(当然不一定是15个,能有30个或者更多的NPC分散在15个城市地图中更好,城市已固定,坐标要可以定义),每个地图出现的NPC数量可以固定也可以随机。与NPC交流,触发相关联的事件,然后NPC立刻消失。

当那两个变量分别到达一定值(相当于过去了XX天)的时候而你没有触发的话,NPC也会消失。当变量再次满足条件的时候,NPC又同上面的情况,随机出现。

每个NPC相关联的事件已经都用公共事件设置好,当然,NPC的关联事件最好也可以通过脚本来管理,比如每个NPC的事件里的共通的东西(打招呼之类的)。用途嘛……其实就是想营造出一个乱乱哄哄的世界,自己也用公共事件和不重复的随机数(每个城市一个)弄过,但是当一个NPC随机在不同的城市的时候,让该NPC消失的条件非常麻烦,来回判断随机数的值,赶上事件里东西又多,判断的太乱了……所以,没办法了。

以上。

最佳答案

查看完整内容

范例有三张地图,在地图1和NPC对话后,每过30天他们就随机出现在地图2和地图3,对话后消失... 范例用到了的开关:开关1... 范例用到了的变量:变量1、变量2、变量3、变量4、变量5... 变量名用[]括起来的表示它是一个数组,变量名用{}括起来的表示它是一个哈希... 如果这些开关和变量在你的游戏中被修改了,所有涉及到这些开关和变量的地方都需要修改,一个也不能漏... 脚本编辑器中并未添加新脚本,范例由事件和事件脚本做成... ...

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
帖子
3145
2
发表于 2015-11-19 12:22:53 | 只看该作者
范例有三张地图,在地图1和NPC对话后,每过30天他们就随机出现在地图2和地图3,对话后消失...
范例用到了的开关:开关1...
范例用到了的变量:变量1、变量2、变量3、变量4、变量5...
变量名用[]括起来的表示它是一个数组,变量名用{}括起来的表示它是一个哈希...
如果这些开关和变量在你的游戏中被修改了,所有涉及到这些开关和变量的地方都需要修改,一个也不能漏...
脚本编辑器中并未添加新脚本,范例由事件和事件脚本做成...
随机NPC.rar (244.24 KB, 下载次数: 125)

评分

参与人数 1梦石 +1 收起 理由
丿梁丶小柒 + 1 认可答案

查看全部评分

聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复

使用道具 举报

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
帖子
3145
3
发表于 2015-11-19 17:52:38 | 只看该作者
你能具体一点吗?
假如现在有变量1,变量2,或者更多,你希望它们分别取什么值的时候发生什么事呢咿咿?
只要你说的出,聪聪就办得到...
聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
357 小时
注册时间
2006-3-3
帖子
181
4
 楼主| 发表于 2015-11-20 09:00:53 | 只看该作者
本帖最后由 duchen5779 于 2015-11-20 10:17 编辑
正太君 发表于 2015-11-19 17:52
你能具体一点吗?
假如现在有变量1,变量2,或者更多,你希望它们分别取什么值的时候发生什么事呢咿咿?
只 ...


昨天出去了不好意思,刚刚看见。
刚才又想了想,果然只这样说确实还不能让人有个思路。这里再说具体点吧。

假设有200个NPC(或者更多),有15个城市地图(或者更多),当25号控制天数的变量等于30或者30的倍数的时候(即按月计算),26号变量等于0或者1(控制天色)的时候(或者还有其他条件,最好能够使用者自己设定的),从这200个NPC中会随机抽出一些散落在这15个城市中,当和他触发的时候会出现几个选项,比如对话、调查、切磋之类的,无论选中哪个选项,进行完其中的设定之后,NPC立刻消失。 其他未触发的NPC继续存在,但当半个月或者一个月(或者可以设定的时间间隔)之后,未触发的NPC也消失。

以上应该是基本。但其中有几个问题。
1、这200个NPC也有开关来控制,初始肯定开关都是关闭,谁能加入到这个有“资格”随机到城市的原始队伍里(暂且这么说吧),都有开关控制。比如,张翠山,在控制他的开关为关闭时,他在武当山门口站岗,但是经过剧情后开关开启,他就从武当山门口消失,加入到可以随机的队列中。
2、消失条件。上面说过,无论选中哪个选项,进行完其中的设定之后,NPC立刻消失。 这个立刻消失的条件……我曾经用事件和随机数做过,如果用公共事件的话,消失条件非常繁琐,如果在每张地图上都弄相同的事件的话,那每张地图的量就会很大。所以是否能做成一句脚本,用事件脚本的形式加在每一个选择项里面。
3、我自己能做好的工作是,NPC的开关都已设置好,涉及到NPC行走图和脸图方面的,我在一个地图上建了几个分别有99个事件页的事件,每个事件页代表一个NPC,有相应的行走图和脸图,其实里面的选择项也做好,当时自己弄得消失条件是当901号变量等于900时消失,所以如果能弄一句代码的话,能弄成这个最好,主要是以前设置好的里面就有,所以可以减少工作量……
4、这些选项里,其实第一项都是对话,大概就是用随机数来搞的,每回说不一样的话,一说完就消失。不知道能不能脚本里统一设置,也涉及到消失条件。

以上这些是我想到的问题,不过我估计有很多在你们这里都不是问题(挠头),如果有什么还没讲明白或者是太罗嗦的,可以私聊。
另附两张图片,大概就是这个效果,一个XP的游戏,叫金书江湖的。不好意思让聪仔误会了,只是说基本就是图片中的效果吧。



里面的两个和尚就是随机出来的。



随机出来之后的NPC的选项。
回复

使用道具 举报

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
帖子
3145
5
发表于 2015-11-20 09:13:57 | 只看该作者
duchen5779 发表于 2015-11-20 09:00
昨天出去了不好意思,刚刚看见。
刚才又想了想,果然只这样说确实还不能让人有个思路。这里再说具体点吧 ...

你XP的游戏来VX区问吗?
聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
357 小时
注册时间
2006-3-3
帖子
181
6
 楼主| 发表于 2015-11-20 09:36:16 | 只看该作者
本帖最后由 duchen5779 于 2015-11-20 10:18 编辑

不是……那是个例子,大概是那么个样子吧……怕说不清楚就用图来说一下……对不起,不好意思没说清楚,原文里我也改了。我今天白天基本都在线。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
357 小时
注册时间
2006-3-3
帖子
181
7
 楼主| 发表于 2015-11-21 10:09:32 | 只看该作者
本帖最后由 duchen5779 于 2015-11-21 10:23 编辑
正太君 发表于 2015-11-20 21:14
范例有三张地图,在地图1和NPC对话后,每过30天他们就随机出现在地图2和地图3,对话后消失...
范例用到了的 ...


啊,努力看了看其中的事件脚本,能看懂一部分。
问这么几个问题。
一。如果因为某些剧情,不想让某个NPC出现在城市中,应该是从队列里删除,删除哈希表相应的项,还是说让这项的值等于0?
二。 其实每个NPC的单独事件页都已经设置好了(差不多吧)。如果想自己设置的话,应该是在公共事件2里,在变量4分别等于1,2,3……200(200个NPC的情况下),分别设置行走图(范例里是移动轨迹中的行走图)。然后在公共事件3里,在变量4分别等于1,2,3……200时,分别设置我之前设置好的每个角色的公共事件(范例中是比较具体的事件),这样就算连接上了吧?
三。变量1的这个事件数组,其实,就是固定NPC出现在每张地图里的位置吧?

正在抓紧时间在自己工程上调试,谢谢聪仔,估计还会有不明白的,到时还要请多指教。

另:如何现在就能转VIP,还是需要版主来帮忙。
回复

使用道具 举报

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
帖子
3145
8
发表于 2015-11-21 10:41:51 | 只看该作者
duchen5779 发表于 2015-11-21 10:09
啊,努力看了看其中的事件脚本,能看懂一部分。
问这么几个问题。
一。如果因为某些剧情,不想让某个NPC ...

一、删除变量3哈希表中对应的项,例如希望去除泼妇,就$game_variables[3].delete("泼妇")咿咿...
二、NPC所有对话和执行项目应在公共事件3里设置,其它的都是按照你说的来做...
三、变量1不是NPC的位置,而是NPC对应的[地图编号,事件编号],不是xy坐标,请看工程中水晶事件中的注释...如果需要改变NPC的坐标,请使用事件命令【设置事件位置】进行临时调整咿咿...
若有不懂还可以问...
另:选择6楼下的【认可为最佳答案】就可以了咿咿咿...
聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
357 小时
注册时间
2006-3-3
帖子
181
9
 楼主| 发表于 2015-11-21 13:23:07 | 只看该作者
本帖最后由 duchen5779 于 2015-11-21 13:31 编辑
正太君 发表于 2015-11-21 10:41
一、删除变量3哈希表中对应的项,例如希望去除泼妇,就$game_variables[3].delete("泼妇")咿咿...
二、NP ...


恩,大概弄明白了。另外,范例中的消失条件是独立开关A关闭,也就是说不管我每个NPC的事件多么复杂,只要想让他互动之后消失,就用独立开关A关闭就行了。比如说话,不管随机数随到说哪一句,说完了加一句独立开关A关闭,NPC就消失了。其他的选项也是一样……哈哈,解决了一个大难题。

不过,刚才在自己的工程里试了试,地图多的话好像就会很卡了,刚才弄15张地图的时候,不知道是因为地图多,并行事件多,还是因为地图多而NPC少(只是你设置的那7个),反正够卡的。看来还是减少地图,在每个地图上多设置事件点为好吧。╮(╯▽╰)╭

点评

那个事件是会暂时消除的,不碍事,并行是对的...  发表于 2015-11-21 21:02
但每张地图里的npc初始化的事件也是并行的。。。。。。难道是笔误?感觉好像自动执行就行吧?  发表于 2015-11-21 20:19
并行事件只有一个,卡不是因为聪聪的系统造成的咿咿...  发表于 2015-11-21 14:20
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
357 小时
注册时间
2006-3-3
帖子
181
10
 楼主| 发表于 2015-11-21 22:03:59 | 只看该作者
啊,发现点问题,如果主角在其中一个地图等待这里的npc刷新的话,npc刷新出后,自己会变成没有行有图然后到屏幕左上角,相当于隐身了。但好像大的地图会出现这样,小一点的好像没有,用你的工程试了试也没有这种问题。(O_O)

点评

我的工程不会有这个问题,一定是你的工程哪里有问题...  发表于 2015-11-22 07:55
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 13:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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