游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: shengkz

[讨论] 关于任务,来看下暴雪做到了什么程度

[复制链接]

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2007-5-7 13:39:00 | 显示全部楼层

Re:关于任务,来看下暴雪做到了什么程度

WOW的客户端是事件驱动的。其中事件(event)总是某个实例的状态发生变化或做出某个行为。事件驱动也就是说,其程序仅仅是对特定的事件作出响应,而不主动执行。我的推测:其服务端逻辑也广泛使用事件驱动的方式。在WOW中角色的行为,状态的变化,都对应到特定的事件,比如:用户施放技能对应于USER_CAST_SPELL。

其脚本结构可能如下:

onLoad() --这里用来进行初始化等工作,通常,关键事件(event)的注册会在这里进行
{
   this.register:USER_CAST_SPELL; --将USER_CAST_SPELL这一事件注册,当此事件发生时,执行onEvent()
    --没有被注册的事件发生时则不会执行onEvent()中的内容
}

onEvent(event,arg1,arg2,arg3) --当某个被注册的事件发生时执行
{
   if(event=="USER_CAST_SPELL") then
      if(GetUnitBuff(NPC_0275)=="韧") then
         FinishMission(MISSION_0275);
      end
   end
}

onFrame() --当每个逻辑帧开始时调用(在客户端UI脚本中有一个类似的onUpdate()函数)
{
}

其中onEvent()函数中的参数为全局变量,用来传递当前逻辑帧所发生的针对该脚本关键事件,比如表示关键用户施放技能的USER_CAST_SPELL(这个事件名是我随便想的,例子而已);arg1,arg2等是对事件进行补充表述的参数,比如event=="USER_CAST_SPELL"时,arg1的值就是施放技能的角色ID。

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2007-5-7 13:50:00 | 显示全部楼层

Re:关于任务,来看下暴雪做到了什么程度

实话说,我觉得LZ说的那两个任务的coding难度都不大——在其合理设计的脚本结构下,任何一个有点编程基础的人都能实现,完全不需要考虑底层技术细节。

154

主题

4567

帖子

4579

积分

论坛元老

Rank: 8Rank: 8

积分
4579
QQ
 楼主| 发表于 2007-5-7 17:54:00 | 显示全部楼层

Re:关于任务,来看下暴雪做到了什么程度

no no no

脚本的确是不难,底层才是真正的关键,正如卡特铁角所说的“在其合理设计的脚本结构下”……那些回调函数,不是直接就能用的

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2007-5-7 20:01:00 | 显示全部楼层

Re: Re:关于任务,来看下暴雪做到了什么程度

shengkz: Re:关于任务,来看下暴雪做到了什么程度

no no no

脚本的确是不难,底层才是真正的关键,正如卡特铁角所说的“在其合理设计的脚本结构下”……那些回调函数,不是直接就能用的

那你是说这些回凋函数很难实现了?或者你是说要实现这样结构的脚本很困难?

不过根据我与几位技术人员的交流来看,这些东西(比如回调函数)在技术上没有什么难度……

最终的关键貌似是:如何对游戏中事件及功能进行合理抽象与提取。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-18 04:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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