3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 2431|回复: 12
打印 上一主题 下一主题

[求助] 不行了,昨天一晚今天一早上都没搞定EVP的问题,向大家求助

  [复制链接]

23

主题

318

帖子

391

积分

高级玩家

Rank: 4

贡献度
30
金元
2709
积分
391
精华
0
注册时间
2005-6-29
跳转到指定楼层
主题
发表于 2011-8-28 12:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lynzxcv 于 2011-8-28 14:04 编辑

先是设定了PACK的条件,设一个参照物(用GetScriptVariable),然后设aipackage ==0为sandbox,1为跟随,2为警戒

然后设一个电台,放在辅助栏里的。设
elseif zxcv == 2
set lynbase.aipackage to 0        ;lynbase为选用的参照物ID
elseif zxcv == 3
set lynbase.aipackage to 1
elseif zxcv == 4
set lynbase.aipackage to 2

这样使用时选项可以生效,但是NPC要过一段时间才能响应。于是就想给NPC设个EVP

给NPC建一个脚本(同时也是上面的参照物的脚本),然后:
scn lynguardxxxxx

int aipackage
int lynguardai

Begin GameMode
if  aipackage != lynguardai
evp
set  lynguardai to aipackage
endif
End





这样没效果,还是不能执行evp,一样延时。。。于是改为
Begin GameMode
set aipackage to 10
if  aipackage != lynguardai
evp
set  lynguardai to aipackage
endif
End


这样NPC可以马上响应,但是又成了不停的evp,结果是连动也动不了了。


又试了
Begin GameMode

if  lynguardai == 1
evp
set  lynguardai to 0
endif
End

然后在控制器中改为
elseif zxcv == 2
set lynbase.lynguardai to 1          ;lynbase为选用的参照物ID
set lynbase.aipackage to 0
elseif zxcv == 3
set lynbase.lynguardai to 1
set lynbase.aipackage to 1
elseif zxcv == 4
set lynbase.lynguardai to 1
set lynbase.aipackage to 2

同样没产生EVP效果,还是一样延时
回复

使用道具 举报

5

主题

576

帖子

1451

积分

游戏狂人

Rank: 6Rank: 6

贡献度
248
金元
4592
积分
1451
精华
0
注册时间
2008-7-18
舒服的沙发
发表于 2011-8-28 13:37 | 只看该作者
Begin GameMode ;//还是Block相关的信息,GameMode是非暂停模式下每帧都会运行..
set aipackage to 10 ;//这句让我觉得很奇怪..你确定你没写错?
if  aipackage != lynguardai
evp
set  lynguardai to aipackage
endif
End
回复 支持 反对

使用道具 举报

23

主题

318

帖子

391

积分

高级玩家

Rank: 4

贡献度
30
金元
2709
积分
391
精华
0
注册时间
2005-6-29
硬硬的板凳
 楼主| 发表于 2011-8-28 13:44 | 只看该作者
本帖最后由 lynzxcv 于 2011-8-28 13:48 编辑
Begin GameMode ;//还是Block相关的信息,GameMode是非暂停模式下每帧都会运行..
set aipackage to 10 ;// ...
StayLight 发表于 2011-8-28 13:37



    因为发现要设一个条件,不然NPC会出现无限EVP的状态,连动都动不了
之前没有任何地方设置lynguardai的值,这个脚本好像就不起效?
set aipackage to 10
这个是错了,应该是lynguardai to 10  不过lynguardai to 10  也是一样不行呀,也是无限evp
回复 支持 反对

使用道具 举报

5

主题

576

帖子

1451

积分

游戏狂人

Rank: 6Rank: 6

贡献度
248
金元
4592
积分
1451
精华
0
注册时间
2008-7-18
冰凉的地板
发表于 2011-8-28 13:55 | 只看该作者
回复 3# lynzxcv



   这个完全是误解..指定变量时会自动赋值为0,不需要再操作..
   你目前把这个set XXX to XXX类的语句直接不加条件放进一个GameMode的Block里就意味着每一帧这句都会被执行..你确定这是你想要的效果么?
回复 支持 反对

使用道具 举报

23

主题

318

帖子

391

积分

高级玩家

Rank: 4

贡献度
30
金元
2709
积分
391
精华
0
注册时间
2005-6-29
5#
 楼主| 发表于 2011-8-28 14:00 | 只看该作者
补充一下,NPC数量不止一个
是不是这个指令一帧只能完成一个NPC?然后因为set  lynguardai to aipackage的原因其EVP它的NPC就不能执行EVP了?
回复 支持 反对

使用道具 举报

23

主题

318

帖子

391

积分

高级玩家

Rank: 4

贡献度
30
金元
2709
积分
391
精华
0
注册时间
2005-6-29
6#
 楼主| 发表于 2011-8-28 14:02 | 只看该作者
本帖最后由 lynzxcv 于 2011-8-28 14:05 编辑

回复 4# StayLight


    因为按之前的试了EVP没有被执行,还是延时一段时间后才执行另一个PACK,而且是每过一会儿其中一个NPC开始执行新PACK

补充一下,NPC数量不止一个
是不是这个指令一帧只能完成一个NPC?然后因为set  lynguardai to aipackage的原因其它的NPC就不能执行EVP了?
回复 支持 反对

使用道具 举报

5

主题

576

帖子

1451

积分

游戏狂人

Rank: 6Rank: 6

贡献度
248
金元
4592
积分
1451
精华
0
注册时间
2008-7-18
7#
发表于 2011-8-28 14:06 | 只看该作者
脚本可以只有一份,但是每个选用改脚本的物件在运行此脚本时其实都是独立的..
如果你要给你的NPC加脚本的话那你就要考虑每个NPC在什么什么情况下应该执行怎么怎么样的脚本..
回复 支持 反对

使用道具 举报

23

主题

318

帖子

391

积分

高级玩家

Rank: 4

贡献度
30
金元
2709
积分
391
精华
0
注册时间
2005-6-29
8#
 楼主| 发表于 2011-8-28 14:11 | 只看该作者
如你所说,物件在运行此脚本时其实都是独立的


那么应该来说所有NPC会同时执行EVP才对呀,而且确实在gamemode 中写set lynguardai  to 10 后是所有的NPC都一起执行了EVP,只是随后又被不断EVP卡死了而已。
就是不明白
if  aipackage != lynguardai
evp
set  lynguardai to aipackage
endif
为什么就是不行,一定是延时执行AI包,怀疑是不是这一段语句跟本就没起效
回复 支持 反对

使用道具 举报

23

主题

318

帖子

391

积分

高级玩家

Rank: 4

贡献度
30
金元
2709
积分
391
精华
0
注册时间
2005-6-29
9#
 楼主| 发表于 2011-8-28 14:13 | 只看该作者
注:NPC是用道具脚本中的
Player.placeatme guard 8 50
这句刷出来的
回复 支持 反对

使用道具 举报

23

主题

318

帖子

391

积分

高级玩家

Rank: 4

贡献度
30
金元
2709
积分
391
精华
0
注册时间
2005-6-29
10#
 楼主| 发表于 2011-8-28 14:31 | 只看该作者
在道具脚本中写入的Begin ScriptEffectStart写入
set lynbase.lynguardai to 10
这下只好像可以同时执行EVP了,但有时有延迟,有时又还行,头疼啊
回复 支持 反对

使用道具 举报

5

主题

576

帖子

1451

积分

游戏狂人

Rank: 6Rank: 6

贡献度
248
金元
4592
积分
1451
精华
0
注册时间
2008-7-18
11#
发表于 2011-8-28 14:37 | 只看该作者
你执行EvP的条件可是A不等于B..
可是以你目前的写法来看大部分时候这个条件都能成立,因为你每一桢都在执行把某个变量设为一个常数的指令..
回复 支持 反对

使用道具 举报

23

主题

318

帖子

391

积分

高级玩家

Rank: 4

贡献度
30
金元
2709
积分
391
精华
0
注册时间
2005-6-29
12#
 楼主| 发表于 2011-8-28 15:30 | 只看该作者
本帖最后由 lynzxcv 于 2011-8-28 18:03 编辑

if  aipackage != lynguardai   
evp   
set  lynguardai to aipackage
endif
当我使用呼叫器选某项的时候执行set lynbase.aipackage to 0,某项为to 1,某项为to 2
这时aipackage != lynguardai肯定就成立了呀
然后evp
evp后再执行set  lynguardai to aipackage,这样避免了不停执行EVP。当呼叫器选了另一项时aipackage的值就更改了,这时aipackage != lynguardai又成立了,于是又evp。这个思路应该没问题才对呀
回复 支持 反对

使用道具 举报

5

主题

576

帖子

1451

积分

游戏狂人

Rank: 6Rank: 6

贡献度
248
金元
4592
积分
1451
精华
0
注册时间
2008-7-18
13#
发表于 2011-8-28 22:50 | 只看该作者
你最好把文件发过来我看一下吧..貌似说不清楚的样子..
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-2-15 11:50 , Processed in 0.141123 second(s), 15 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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