游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6104|回复: 9

游戏中运用脚本语言

[复制链接]

3

主题

11

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2010-3-15 13:46:00 | 显示全部楼层 |阅读模式
现在有许多游戏,都会选择采用脚本语言来编写游戏中的任务。如果想修改游戏中的某些任务或者剧情时,可以直接通过修改脚本来实现,而不用重新编译程序。那样会浪费大量的时间,玩家也需要对客户端进行打补丁,会对玩家造成不便。

  

在游戏中,有些很常见的情况:

当玩家点击商店NPC时, 会打开购买界面。

      当玩家点击装备打造NPC时,会打开打造的界面,选择武器和材料。

      当玩家点击科举的考官NPC时,会打开问题和答案选择的界面。

      当玩家点击特定的NPC时,可能会接到新的任务。打开任务相关的界面。



举个简单的例子,在游戏开发中,可以这样处理:

A.      客户端发送玩家点击的NPC的ID号给服务端

B.      服务端根据NPC的ID号,找到对应的脚本,脚本可能像脚本1*技能学习

C.      服务端执行相应的脚本,示例中SysDialogText, SysDialogOption等为服务端提供给脚本调用的系统函数,在这几个函数里,服务端会把相关的数据发给客户端.

D.      客户端接收到服务端下发的数据,根据接收到的数据显示界面.

E.       玩家可以选择界面中的不同选项。这时客户端会把玩家选择的选项的信息上发给服务端。

F.       服务端根据选项的信息,执行不同的操作,示例脚本1*技能学习中,玩家选择的是“我想学习技能”,这时服务端将执行脚本函数Npc_SkillStudy_OpenWindow。在脚本函数中又调用系统函数SysOpenWindow,函数SysOpenWindow根据参数会通知客户端打开相应的界面.



===============================================================================

--脚本1*技能学习

function Npc_SkillStudy_Dialog()

         if SysDialogText("想成为三界精英,还要下一番苦功夫啊!") then

         SysDialogOption("我想学习技能","</F>Npc_SkillStudy_OpenWindow")

         SysDialogOption("再见","</F>Null")

         SysDialogEnd()

         end
end



function Npc_SkillStudy_OpenWindow()

         SysOpenWindow(100,1000000)
End

===============================================================================

3

主题

11

帖子

20

积分

注册会员

Rank: 2

积分
20
 楼主| 发表于 2010-3-15 13:59:00 | 显示全部楼层

Re:游戏中运用脚本语言

自己顶!

13

主题

79

帖子

81

积分

注册会员

Rank: 2

积分
81
QQ
发表于 2010-3-19 08:08:00 | 显示全部楼层

Re:游戏中运用脚本语言

好贴 顶一个

10

主题

59

帖子

59

积分

注册会员

Rank: 2

积分
59
发表于 2010-3-21 13:50:00 | 显示全部楼层

Re:游戏中运用脚本语言

接着顶

0

主题

19

帖子

23

积分

注册会员

Rank: 2

积分
23
发表于 2010-4-11 00:55:00 | 显示全部楼层

Re:游戏中运用脚本语言

顶一个!最近也在写这方面的东西!

4

主题

10

帖子

38

积分

注册会员

Rank: 2

积分
38
发表于 2010-4-12 11:03:00 | 显示全部楼层

Re:游戏中运用脚本语言

我也在写, 呵呵。
可以交流交流
www.kbengine.org

0

主题

769

帖子

1052

积分

金牌会员

Rank: 6Rank: 6

积分
1052
发表于 2010-4-12 12:15:00 | 显示全部楼层

Re:游戏中运用脚本语言

脚本应用经常会有服务器脚本跟客户端脚本
一些涉及 游戏里面金钱交易或者等级改变等与利益挂钩的,都要在服务器完成
而一些类似文字描述 开启关闭UI的,则在客户端执行的比较多(文字显示有部分为方便服务器更新也放服务器)
脚本分两种,一种是解释型,就是读取文本后,依据文本执行不同的函数,另外一种则是转换成二进制.第一种速度慢但方便修改,第二种速度快,不过实现难度比第一种大,修改不方便.

类似LZ发的技能学习,脚本应该是放客户端合适,然后学习技能那些具体逻辑判断放在服务器

1

主题

6

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2010-4-16 22:23:00 | 显示全部楼层

Re:游戏中运用脚本语言

其实,客户端补丁是得打,设想一下,界面大多用图片做底,加上一些乱七八糟的东西,数据量就大了,在实时游戏中要避免大数据量的传输,而都采用短小的消息形式传输.你想想看,如果你同时打开的窗口较多,是不是就像开网页那样,网速慢了点得等半天...于是玩家就会不耐烦了.
拙见哈,重在参与.

3

主题

11

帖子

20

积分

注册会员

Rank: 2

积分
20
 楼主| 发表于 2010-4-22 11:37:00 | 显示全部楼层

Re: Re:游戏中运用脚本语言

green84: Re:游戏中运用脚本语言

其实,客户端补丁是得打,设想一下,界面大多用图片做底,加上一些乱七八糟的东西,数据量就大了,在实时游戏中要...



界面还是放在客户端的,服务端只是把界面编号告诉客户端,客户端打开对应的界面,消息量不大把

而且一些NPC的对话选项应该放在服务端,比如一个领奖的NPC,有个领奖的选项,要是突然有bug了,服务端即时改一下脚本可以先把领奖的选项屏蔽掉,在找到Bug进行修复;也可能是武器打造,合成之类的存在不合理的功能时,进行即时的屏蔽。

0

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2010-7-8 13:28:00 | 显示全部楼层

Re:游戏中运用脚本语言

好贴,接着顶一个
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 11:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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