51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3084|回复: 14
打印 上一主题 下一主题

转载其他地方 网游脚本浅谈1(对测试有一定作用的)

[复制链接]
  • TA的每日心情

    2019-12-27 13:32
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]测试营长

    跳转到指定楼层
    1#
    发表于 2011-6-2 14:49:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    脚本起着驱动整[来源:GameRes.com]个游戏进程的作用, 在单机RPG时代游戏的剧情发展和任务都是由客户端的脚本来驱动的。

    目前现有的网游绝大部分也都拥有自己的脚本系统, 或者嵌入某种通用的脚本语言如python,lua, 或者自己设计一套游戏流程/逻辑描述规则也就是自定义的剧情描述语言,  和单机RPG所不同的是网

    游的脚本通常运行在服务器端。

    游戏中的脚本体系一般以事件为中心, 和宿主代码之间进行相互的交互。
    1. 宿主代码会在某些事件发生或者满足一定条件下调用脚本, 这种调用是双方约定好的, 例如调用脚本的某一个函数
    2. 脚本被调用后会执行剧情逻辑, 当然做具体的动作的时候还是要调用宿主代码暴露给脚本的接口。

    脚本代码和宿主代码相比较, 最大的优势在于脚本更为简单易学, 有利于策划编写游戏逻辑, 而且不需要重新编译程序。
    劣势是脚本通常是解释性的或者是类似于java有中间字节码的, 执行速度上远不及宿主二进制代码, 有的资料显示要慢10倍以上。


    下面我们来看下剑侠情缘公测服务端1.2的脚本, 其用的是嵌入lua, 我们先找个它的简单来分析下是如何实现的:


    巴陵县_长江码头船夫对话.lua
    function main(sel)

    if (GetLevel() >= 10) then  --等级达到十级
    Say("船夫:我有个外号叫做“浪里白条”,说起游水的功夫,全巴陵县我认了第二,就没人敢认第一!所以坐我的船你保管放心,你要去哪个码头呀?", 2, "坐船/WharfFun", "不

    坐/OnCancel");
    else  
    Say("船夫:对不起,没到十级的新手不能坐船出村。", 0)
    end
    end;
    ---------------------------------------------------------------   华丽的分割线
    function  OnCancel()
       Say("船夫:没银子可坐不了船!",0)
    end;

    在以上的脚本中描述了长江码头船夫和玩家之间的对话逻辑, 当玩家点击npc试图和其说话时, 服务器端就会调用该npc对应的脚本中的main函数来驱动游戏的剧情, 其中的GetLevel,Say等就是宿主

    代码暴露给脚本的接口, 如果玩家在客户端选了"不坐", 客户端会发送"OnCancel"给服务器来促使其执行OnCancel函数。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情

    2019-12-27 13:32
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]测试营长

    2#
     楼主| 发表于 2011-6-2 14:50:25 | 只看该作者
    开卷有益  有问题的可以接下面 我懂得话就负责解答 ~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2011-6-2 15:05:59 | 只看该作者
    请教对测试有何作用?
    你不会说让测试人员检查脚本吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2011-6-2 20:22:28 | 只看该作者
    本帖最后由 星空物语 于 2011-6-2 20:24 编辑

    有的公司貌似就是这么做的
    这就是白盒啊
    测试也可以修改脚本的内容达到测试目的,算灰盒吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2011-6-2 21:30:37 | 只看该作者
    有意义。
    个人认为:意义并不在于会大量查看脚本进行测试,而在于测试员根据该脚本能够更深入的理解该功能的制作逻辑。了解逻辑比表项的枚举要重要的多。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-12-27 13:32
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]测试营长

    6#
     楼主| 发表于 2011-6-3 10:52:59 | 只看该作者
    回复 3# cncnily
    有用啊
    如果机器人测试的话,程序C可以关联Lua,提供接口和可用字段 ,就能直接生成.lua脚本
    lua脚本策划都能写,测试很简单的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-12-27 13:32
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]测试营长

    7#
     楼主| 发表于 2011-6-3 10:53:33 | 只看该作者
    回复 5# huix47
    恩 比如1个任务断链了,首先去看的就是脚本
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-12-27 13:32
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]测试营长

    8#
     楼主| 发表于 2011-6-3 10:54:40 | 只看该作者
    回复 4# 星空物语
    是灰盒,lua脚本可读性很高
    无论单机还是知名网游都用这个
    并且写法上的差异可以 提升程序读取的速度
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-12-27 13:32
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]测试营长

    9#
     楼主| 发表于 2011-6-3 10:55:32 | 只看该作者
    除非判断严谨的地方,不推荐用逻辑与
    把关键模块放前面 ,用逻辑非是好作用~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2011-6-3 13:59:20 | 只看该作者
    一般来说脚本都写任务、AI。
    光任务几千条算很正常的,而且都放有奖励,还要检查奖励和任务描述的是否一致。如果少写个条件就会导致无限刷任务的情况。还有自动寻路问题等等。这些必须跑黑盒的。

    现在能做的只是发现问题然后检查脚本,可以直接指出BUG点,这样足够了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-12-27 13:32
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]测试营长

    11#
     楼主| 发表于 2011-6-3 14:51:57 | 只看该作者
    回复 10# cncnily
    嗯对的。
    任务测试用例 可以也用脚本写,以前试过。这样脚本变更时如果策划能告诉下。就可以直接改测试用例。可能会发现改动会影响到哪些。通常主线任务影响大。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-12-27 13:32
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]测试营长

    12#
     楼主| 发表于 2011-6-3 14:52:22 | 只看该作者
    没有人对lua脚本 写法有问题要问 啊?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2011-6-3 18:33:47 | 只看该作者
    回复 12# jiazurongyu
      lua不懂是神马东西....
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2011-6-3 21:12:35 | 只看该作者
    了解自己测试产品的制作所涉及的东西是非常有用的
    便于自己增加有效测试率,和发现问题点.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2011-6-8 14:58:43 | 只看该作者
    路过学习,脚下留印~
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 20:53 , Processed in 0.073648 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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