lynzxcv 发表于 2011-8-29 08:18

菜鸟再次提个小问题,player.placeatme设了距离后为什么经常还会在身边出来?

比如我用player.placeatme XXX 1 3000 0
这个XXX应该是在离我3000的地方出来才对,但经常会变成在我身边出现。如果数量设高了就是部分在远部分在身边。

请问有没有什么方法可以避免这种情况,比如地点挡不能刷的话就在距离内最远的地方刷,不要直接刷在我身边

StayLight 发表于 2011-8-29 08:52

本帖最后由 StayLight 于 2011-8-29 08:55 编辑

GECK官网里貌似有提到PlaceAtMe后面两个parameter根本没用..
实际使用过程中好像的确如此..
想要让物品出现在指定的距离的话需要创建一个Ref然后用set ref to xx.PlaceAtMe 1这样的句式在创建角色的同时get到它的reference,最后根据对玩家的GetPos获得的结果对它使用SetPos,以达到每个目标都出现在相对玩家同样方向的效果..
不过具体怎么写这个才能让物件不会卡在地形里的方法我目前不清楚..建议参考FO3的Enclave Commander,记得里面有这个..

真永恒之心 发表于 2011-8-29 09:02

本帖最后由 真永恒之心 于 2011-8-29 09:03 编辑

回复 1# lynzxcv


    Placeatme的距离参数只对Leveled 数据起作用,直接对NPC或Creature进行操作没有距离效果。你应该多分析一下别人的程序例子,例如我发的僵尸世界。

lynzxcv 发表于 2011-8-29 09:48

谢谢光大和猫大,我先试一试,有不懂的问题下次再向各位请教。
另外我是对Leveled 数据操作的,就是加NPC的那个,不是怪物的那个,应该都有效吧?
是部分出现在远处,部分出现在近处,郁闷啊

lynzxcv 发表于 2011-8-29 09:50

另外Enclave Commander也在研究过,看的我脑仁都疼......................

lynzxcv 发表于 2011-8-29 12:26

本帖最后由 lynzxcv 于 2011-8-29 12:34 编辑

GECK官网里貌似有提到PlaceAtMe后面两个parameter根本没用..
实际使用过程中好像的确如此..
想要让物品出现 ...
StayLight 发表于 2011-8-29 08:52 http://bbs.3dmgame.com/images/common/back.gif


看的不太明白呀,我这方面太弱了~~~~~~~~
比如set ref to asdf001.PlaceAtMe 1   这时ref得到的值是什么? 好像我看到一个MOD,REF作用是指向的是地图上某物体的ID吧

然后对玩家的GetPos获得的结果对它使用SetPos

这个无法理解意思...
比如我要让asdf001这个物件在我每次执行 player.PlaceAtMe asdf001 10 3000的时候,在3000的距离出现10个asdf001要怎么做?

ref asdf001
set ref to asdf001.placeatme 1
player.PlaceAtMe ref 10 3000

这个样子吗?顺便说一下以上写的是啥我自己跟本不明白{:3_155:}

PS:这个物件原来在地图上不存在的,set ref 有用吗?

lynzxcv 发表于 2011-8-29 12:53

本帖最后由 lynzxcv 于 2011-8-29 12:55 编辑

回复 2# StayLight


    或者是不是这样?
ref getplayer.PlaceAtMe asdf001 1

ref 10 3000

另外REF好像用get和my都有效,这两个有什么区别?my是指向属于玩家的物件?

StayLight 发表于 2011-8-29 13:08

回复 6# lynzxcv

ref可以代表一切FormID,也就是说游戏里的一切物件都可以用它来代表,无论是Base Object还是放在地图上的副本..

set ref to asdf001.PlaceAtMe 1 这样的句式同时有两个作用..一个是PlaceAtMe正常的功能,还有就是把新创建的物体的FormID写入名为ref的ref里,方便日后操作..

如果要运用SetPos来修改新物体的位置的话就可以完全跳过PlaceAtMe里关于距离和方向的设定..
之后需要做的就是对player使用GetAngle Z和GetPos,然后根据取得的角度值和座标值利用三角函数得出新的座标值,最后用SetPos来移动刚刚PlaceAtMe创建的物体..
但是这么做没有考虑到地形,这就是为什么我之前说你还是得参考Enclave Commander的写法..
你要找的东西应该是在和那个召唤Marker有关的脚本里,好好找找吧..

StayLight 发表于 2011-8-29 13:11

回复 7# lynzxcv



   这样写自然是错了..GECK脚本里的ref其实就相当于可以存储formID的变量,是需要在脚本一开始来指定的..
   因此像我刚才的写法就需要在脚本头部再加上ref ref来指定一个名为ref的ref变量..

lynzxcv 发表于 2011-8-29 13:28

回复lynzxcv

ref可以代表一切FormID,也就是说游戏里的一切物件都可以用它来代表,无论是Base Object还 ...
StayLight 发表于 2011-8-29 13:08 http://bbs.3dmgame.com/images/common/back.gif


看来这个还不是我目前能搞定的问题,另外发现placeatme对NPC操作时并不是距离不起作用,而是对第一个不起作用。比如数量为5就是第一个没用,后面4个有效{:3_141:}
页: [1]
查看完整版本: 菜鸟再次提个小问题,player.placeatme设了距离后为什么经常还会在身边出来?