不过看了这个帖子知道自己需要提升
不错的帖子,可惜我没有钱加分 看到视频解说了,找找工具去试试.....AI{:169:}高级 本帖最后由 Vicen.NG 于 2014-8-4 13:51 编辑
很久没见这么有意思的文章了...实在不错。
主要思路是利用【AI调用内置语言来读取信息】然后【转换为触发可检测资源】,再通过【触发分解得出效果】吧。
【变量】在帝国里的确是一个致命伤,但我们可以通过不效率的原始方法实现。
就如所说变量作用是"更改","运算","检测”,但变量应该还有一个作用,就是“寄存”
譬如有时候我们做地图,在里面建立一些标记物通过判定其“存在or不存在”应该算是一种变量
我们发现这种变量并不效率,对,虽然可以检测,但不能有效地对其进行“更改”或“运算”只能算是一种【开关器】
而我们想要实现的是【寄存器变量】
我也想过利用资源(整数)进行“分解运算”(即二进制算法)转换成地图标记物作为一种临时寄存,譬如旗C这种可重叠物。
有人问100黄金岂不是要建立100个旗C吗,非也
利用玩家1~玩家8,也可以单玩家的旗A、旗B、C作为标记...
例如玩家1的旗A代表数值128,玩家2的旗A代表64...玩家3代表32...(省略玩家4~7)玩家8代表1
在1x1的地图里就能寄存255数值,等同8位的二进制
如果大于255的数值怎么办。反问 现在的CPU都有着什么样的特点?就是多核心
既然1x1不行,可以在旁边继续扩建一组代表256、512、1024等标记,又或者继续建立旗B等另外指示物。利用旗A\B\C\D 在1x1的位置(8名玩家)可以构建32位的二进制寄存器,最大值为2^32即约42亿
而实际上根本用不上如此庞大的数值。
范例:(1x1)的位置里存在
玩家1的旗A
玩家3的旗A
玩家8的旗A
代表着什么数值?
128 + 32 + 1
等于 161
为什么要使用不同的玩家或不同物件呢,因为这样在换算时“移除物件”上容易区分吧,当然解决方法很多,只是说出其中一种。
这只是想到利用这种方法实现粗略的“寄存”功能,将一组数值寄存在这些标记物里。
缺点就是在【进行加减乘除等运算时需要花费几秒的时间进行换算】 和 【占用地图资源】。
总结:如何有效地将【变量】实现【寄存】?即使调用所有玩家的资源栏也只能算是32个。
假想:AI 能否将【变量】寄存在某些隐藏资源里
大量【寄存器】能实现什么样的效果?
- 物品、装备等系统的数值变化保存(譬如多种强化过的(数值变化)武器相互切换)
- 复活系统对经验、生命、攻击力的增加或减少(包括一些加点系统在内的数值记录)
- 强化、附魔、技能修炼 等系统等需要大量寄存指示器,其中最得益的是 【随机事件系统】
还有很多很多...
本人能力有限,仅对触发理解比较多,至于AI能不能实现”寄存“,能实现到何种程度,还是期待大家的发掘。
Tak_小源 发表于 2014-7-25 15:24
这边的数据变量处理看完瞬间懂了~~~~
(up-chat-data-to-all "您目前的最大生命值是 %d 点" g: x) ;...
%d应该是特指某种数字类型吧
页:
1
[2]