发表于 2012-2-21 20:461#
楼主好消息,给流星AI的一个重大突破
真武林 31关后将全面使用此方面,将AI的游戏性和可玩性再度提升到一个新境界。
众所周知,流星里面有
sn_xxx.pst(给剧本AI用的,控制游戏剧情发展),
npcxxx.pst(给人物用的,控制人物动作)和
snxxx.pst(给地图用的,控制地图机关等)
三个脚本,每个脚本里都有程序,但是三个程序本身是独立运行的,相互之间的数据不能互通。
这使得我们制作复杂的互动AI比较麻烦,(当然,貌似有GameCallback可以互通,但是使用方法没有公开)
比如剧本是:
比如某个大侠说:芝麻开门,(这个时候需要大门立刻打开)
比如走到某个机关前,突然万剑齐发 (这个时候需要立刻发出杀人利器)
比如说坛子被打破了,大侠需要说,你看我吧坛子打破了,你快出来吧
比如我们希望流星剧本运行到某一个剧情时,npc说一句话导致地图上突然出现某个机关或者物品,当npc启动机关或者吃点物品时,
又触发地图上某些变化
真武林之前对这类要求的处理是,设置一个包,等到剧情运行到某处时,加入某个npc,吃点包,然后触发地图,地图中再触发地图变化。
(如果剧本要知道这个变化已经完成,还需要额外设置另外一个物品)
这样一个麻烦是如果剧本很复杂,需要设置很多包和额外的npc来做这个事情(笑:而且要保证npc不会你看见)
今天我突然想起一个思路:我的真武林是有独立客户端的,我在客户端里内置一个外挂,获取这三个程序的数据,比如剧本发出某个消息,通过
外挂把剧本数据传输到地图,地图就可以立即响应变化,然后外挂再获取地图数据到剧本,剧本中又可以立即响应这个情况。
其中剧本和npc都是有OnUpdate函数可以随时监测数据的,通过反汇编,我发现地图也有类似函数,也可以在里面加入随时监测函数。
经过试验,上述思路运行获得成功,现在做这种地图剧本互动程序就再也无需借助Npc吃包等其他动作了。
真武林 31关后将全面使用此方面,将AI的游戏性和可玩性再度提升到一个新境界。
众所周知,流星里面有
sn_xxx.pst(给剧本AI用的,控制游戏剧情发展),
npcxxx.pst(给人物用的,控制人物动作)和
snxxx.pst(给地图用的,控制地图机关等)
三个脚本,每个脚本里都有程序,但是三个程序本身是独立运行的,相互之间的数据不能互通。
这使得我们制作复杂的互动AI比较麻烦,(当然,貌似有GameCallback可以互通,但是使用方法没有公开)
比如剧本是:
比如某个大侠说:芝麻开门,(这个时候需要大门立刻打开)
比如走到某个机关前,突然万剑齐发 (这个时候需要立刻发出杀人利器)
比如说坛子被打破了,大侠需要说,你看我吧坛子打破了,你快出来吧
比如我们希望流星剧本运行到某一个剧情时,npc说一句话导致地图上突然出现某个机关或者物品,当npc启动机关或者吃点物品时,
又触发地图上某些变化
真武林之前对这类要求的处理是,设置一个包,等到剧情运行到某处时,加入某个npc,吃点包,然后触发地图,地图中再触发地图变化。
(如果剧本要知道这个变化已经完成,还需要额外设置另外一个物品)
这样一个麻烦是如果剧本很复杂,需要设置很多包和额外的npc来做这个事情(笑:而且要保证npc不会你看见)
今天我突然想起一个思路:我的真武林是有独立客户端的,我在客户端里内置一个外挂,获取这三个程序的数据,比如剧本发出某个消息,通过
外挂把剧本数据传输到地图,地图就可以立即响应变化,然后外挂再获取地图数据到剧本,剧本中又可以立即响应这个情况。
其中剧本和npc都是有OnUpdate函数可以随时监测数据的,通过反汇编,我发现地图也有类似函数,也可以在里面加入随时监测函数。
经过试验,上述思路运行获得成功,现在做这种地图剧本互动程序就再也无需借助Npc吃包等其他动作了。
UID 12792
