公开/公告号CN101158895A
专利类型发明专利
公开/公告日2008-04-09
原文格式PDF
申请/专利权人 成都金山互动娱乐科技有限公司;
申请/专利号CN200710050283.0
发明设计人 荣侠;
申请日2007-10-18
分类号G06F9/44(20060101);G06F19/00(20060101);
代理机构成都天嘉专利事务所;
代理人徐丰
地址 610041 四川省成都市高新区天府大道南延线高新软件孵化园科技财富中心三层
入库时间 2023-12-17 19:58:27
法律状态公告日
法律状态信息
法律状态
2009-01-14
授权
授权
2008-06-04
实质审查的生效
实质审查的生效
2008-04-09
公开
公开
技术领域
本发明涉及网络游戏的插件与脚本,特别是一种提高网络游戏实用性的方法。
背景技术
现在的网络游戏当中,参与其中的玩家有享受游戏快感的时刻,当然也有大量的空闲等待时间。这往往就会让玩家对一个网络游戏产生厌倦,因为等待时间过长,玩家觉得索然无味,所以最后就选择了放弃继续玩这个网络游戏。
但是如果在游戏中添加文本阅读、音乐播放,甚至电影观看等功能,就可以让玩家在等待时间有事可做而不至于产生厌倦感。现在玩家玩游戏等待的过程中,会使用许多其他的即时通讯、文本阅读、音乐播放、电影观看等其他辅助工具,当多种软件同时运行时,这时在Windows中往往需要不断的窗口切换给玩家带来不便,因此如果玩家将所需要的功能融合到游戏中或者将具有这些功能的工具和软件嵌入游戏中,那就可以大大提高玩家与游戏的亲和度,从而提高网络游戏的实用性。
不过目前能实现这一功能的网络游戏很少,像《魔兽世界》等大型网络游戏也仅仅是提供了脚本接口制作一些简单的界面和游戏相关功能,其功能较弱,而且仅仅是为该游戏服务,还不能解决上述缺陷问题。
发明内容
本发明提供了一种提高网络游戏实用性的方法,该方法可以解决网络游戏本身和玩家之间亲和感问题,可以让玩家更多地参与到游戏中来,开发者不需要再提供所有的外部功能制作,可以仅仅提供软件开发工具包SDK或编辑器让玩家自己完成所需要的功能。
本发明的技术方案如下:
一种提高网络游戏实用性的方法,其特征在于:在游戏的界面中预留一块区域,在该区域中通过特定的函数创建一个子窗口,所述子窗口具有编辑功能,所述子窗口根据玩家需要打开或隐藏,用户通过动态链接库DLL或者脚本得到所述特定的函数,并且用户通过在所述子窗口上添加、修改函数得到在游戏中的操作。
所述特定的函数包括预留的调用接口,或者绘制函数Draw(),或者播放函数PlayeMusic()等。
所述区域一直保留在游戏的一角,或者做成弹出形式;当为弹出形式时,玩家根据自己的操作情况使用打开或者关闭该子窗口。
所述预留子窗口的特定函数通过DLL完成。
所述子窗口上通过预留的特定函数还绑定有各类插件,所述各类插件是通过游戏官方以外的DLL和脚本完成的。所述各类插件具有各种不同功能,如显示文本、显示网页、观看视频、播放音乐等。
所述脚本是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。
所述插件是一种遵循一定规范的应用程序接口编写出来的程序。
本发明的有益效果如下:
本发明可以增加网络游戏本身和玩家之间的亲和感,因此可以让玩家更多地参与到游戏中来,同时开发者不需要再提供所有的外部功能制作,可以仅仅提供SDK或编辑器让玩家自己完成所需要的功能,也就是说玩家可以充分地将自己需要的功能融合到游戏中或者将具有这些功能的工具和软件嵌入游戏中。
附图说明
图1为本发明的操作流程示意图
图2为本发明在子窗口中实现显示文本的工作流程示意图
具体实施方式
实施例1
如图1所示,一种提高网络游戏实用性的方法,在游戏的界面中预留一块区域,在该区域中通过特定的函数创建一个子窗口,所述子窗口具有编辑功能,所述子窗口根据玩家需要打开或隐藏,用户通过动态链接库DLL或者脚本得到所述特定的函数,并且用户通过在所述子窗口上添加、修改函数得到在游戏中的操作。
所述特定的函数包括预留的调用接口,或者绘制函数Draw(),或者播放函数PlayeMusic()等。
所述区域一直保留在游戏的一角,或者做成弹出形式;当为弹出形式时,玩家根据自己的操作情况使用打开或者关闭该子窗口。
所述预留子窗口的特定函数通过DLL完成。
所述子窗口上通过预留的特定函数还绑定有各类插件,所述各类插件是通过游戏官方以外的DLL和脚本完成的。所述各类插件具有各种不同功能,如显示文本、显示网页、观看视频、播放音乐等。
所述脚本是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。
所述插件是一种遵循一定规范的应用程序接口编写出来的程序。
实施例2
如图2所示,为本方法的具体操作流程示意图,表现了一个DLL插件的调用流程,该插件为一个简单的文本阅读窗口。其伪代码如下:
//基类该类实现对用户保密,头文件公开。
Class CBaseDraw
{
Virtual void Draw()=0;//调用接口
//------------------------------------------------
//提供给用户调用的函数。
void DrawString(const nsize nx,const nsize ny,const char*szstring);//
该函数用于在窗口的指定位子现实一个字符串。
//
//玩家在DLL(动态链接库)实现的CBaseDraw的派生类。
Class CTexDraw:public CBaseDraw
{
//该函数用于从文件读入文本内容。
BYTE*LoadTextFromFile(const char*szFileName);
//基类的虚函数Draw的实现。
Virtual void Draw();
}
//-----
Virtual void CTexDraw::Draw()
{
BYTE*pBuffer=LoadTextFromFile(“…..”);
DrawString(0,20,pBuffer);
}
//---------
//CPlugDLLManager遍历载入指定目录中的Dll并调用dllStartPlugin函数载入该插件
CPlugDLLManager* m_pPlugManager;
extern“C”void dllStartPlugin(void)throw()
{
HlNSTANCE hlnst=GetModuleHandle(“XXXX.dll”);//获得本dll的
//INSTANCE
CTexDraw*pTexDraw=new CTexDraw(hInst);
m_pPlugManager.addDrawObj(pTexDraw);//按对象类放入对应的List,本例为放入画图对象的链表内(这些对象都是从CBaseDraw派生而来。)
}
在子窗口中通过成员变量m_pPlugManager遍历DrawObjList,调DrawObj的Draw函数用于在子窗口中绘图。
机译: 导航装置,一种导航方法及其可提高准确性和实用性的记录介质
机译: 一种提高用户界面实用性的方法
机译: 一种提高语音识别实用性的方法和装置