加入收藏 | 设为首页 | 会员中心 | RSS
您当前的位置:首页 > 虚拟教程 > HiPiHi动作脚本

HiPiHi脚本系统说明

时间:2008-04-30 16:47:41  来源:HiPiHi官方  作者:ihezuo

脚本系统说明

50013

 

HiPiHi客户端内嵌了Lua脚本引擎,用户可以通过脚本系统暴露的应用程序接口(API)和客户端完成一定的交互功能。

客户端和用户编写的脚本程序之间的连接方式有两种:回调函数方式和外接程序方式,下面分别以这两种方式说明脚本系统的使用方法。

 

回调函数方式

HiPiHi客户端设计了一些回调函数,会以一定的规则调用这些回调函数,用户可以编写这些回调函数的具体内容,从而实现用户编写的逻辑在客户端中执行,下面是HiPiHi客户端的Lua回调函数说明。

HiPiHi客户端的回调函数写在指定的Lua文件中,这些文件位于目录:

%InstallPath%\Script\Lua下,共包含7个文件:

Agent.lua      内含和虚拟人物相关的回调函数

Frame.lua      内含客户端每帧都会调用的回调函数

Global.lua     内含回调函数可以使用的全局变量

Keyboard.lua   内含键盘消息相关的回调函数

Mouse.lua      内含鼠标消息相关的回调函数

Patch.lua      内含和地块相关的回调函数

Timer.lua      内含和定时器相关的回调函数

用户用文本编辑程序(如Windows自带的Notepad.exe)可以打开和编辑文件内容,各文件内含的具体函数和意义如下:

Agent.lua

函数名称

OnFriendList

函数说明

客户端好友列表更新时调用该函数,传入全部好友列表

函数参数

FriendList

该参数为一个Lua的表,表结构为:

 

{

   好友名称=好友编码

   好友名称=好友编码

   .

   .

   .

   好友名称=好友编码

}

 

其中好友编码的格式为:

{

    h=32  

    l=32   

}

例如:

f =

{

    Joe =

    {

       h = 4267651063,

       l = 1706849627,

    },

    MRZG =

    {

       h = 4040817585,

       l = 3111856507,

    },

}

 

函数名称

OnFriendListOnline

函数说明

客户端好友列表更新时调用该函数,传入全部在线好友列表

函数参数

FriendList OnFriendList

 

Frame.lua

函数名称

OnFrameBegin

函数说明

每帧处理开始时调用该函数

函数参数

uFrameCount 客户端运行的帧数

fTime 客户端运行的时间()

fElapsedTime 客户端上帧到这帧的时间间隔(秒)

 

函数名称

OnFrameEnd

函数说明

每帧处理结束时调用该函数

函数参数

uFrameCount 客户端运行的帧数

fTime 客户端运行的时间()

fElapsedTime 客户端上帧到这帧的时间间隔(秒)

 

Keyboard.lua

函数名称

OnKeyEvent

函数说明

用户操作键盘时调用该函数

函数参数

iEvent 键盘事件 具体键盘事件在变量

hit_Const_KeyEvent

变量说明在HiPiHi Extend程序中

iKey 用户操作的键位 具体键位在变量

                  hit_Const_KeyName

变量说明在HiPiHi Extend程序中

bPick 用户操作键盘时鼠标是否对准了场景中的某个物品

vPos 用户操作键盘时鼠标的屏幕位置坐标

iKeyState 键盘的状态 具体的键盘状态在变量

                     hit_Const_KeyState

   变量说明在HiPiHi Extend程序中

iKeyEvent 键盘的事件

 当键盘按下或弹起瞬间

iKeyEvent=1,否则iKeyEvent=0

 

Mouse.lua

函数名称

OnMouseEvent

函数说明

用户操作鼠标时调用该函数

函数参数

iEvent 鼠标事件编码 具体鼠标事件在变量

                    hit_Const_MouseEvent

变量说明在HiPiHi Extend程序中

bPick 用户操作鼠标时鼠标是否对准了场景中的某个物品

vPos 用户操作鼠标时鼠标的屏幕位置坐标

iMouseState 鼠标的状态 具体鼠标状态在变量

                    hit_Const_MouseState

变量说明在HiPiHi Extend程序中

iMouseEvent 鼠标的事件

当鼠标按钮按下或弹起瞬间

iMouseEvent=1,否则iMouseEvent=0

 

Patch.lua

函数名称

OnEnterPatch

函数说明

用户进入你的地块时调用该函数

函数参数

sUserName 进入地块的用户名称

vPos 进入地块的用户当前位置坐标(世界坐标)

 

函数名称

OnInPatch

函数说明

用户停留在你的地块上时,每隔10秒钟调用该函数

函数参数

sUserName 停留用户名称

vPos 停留地块的用户当前位置坐标(世界坐标)

 

Timer.lua

函数名称

OnTimer

函数说明

按设定的时间定时调用该函数,时间可以用函数

hif_System_SetTimer(time)设置,单位秒

函数参数

uFrameCount 客户端运行的帧数

fTime 客户端运行的时间()

fElapsedTime 客户端上帧到这帧的时间间隔(秒)

 

 

 

 

具体使用实例

Patch.lua文件中具有如下函数:

 

function OnEnterPatch(sUserName,vPos)

    hif_Chat_Say(2,sUserName,"欢迎您来到我的家!" .. sUserName)

end

 

该函数在有用户进入你的地块时执行,执行函数体中的:

hif_Chat_Say(2,sUserName,"欢迎您来到我的家!" .. sUserName)

hif_Chat_Say函数是一个执行聊天功能的函数(具体说明在HiPiHi Extend程序中)根据hif_Chat_Say的语法,执行的功能是向进入地块的用户以私聊的方式说“欢迎您来到我的家!”,后面跟用户的名称,比如用户MRZG进入你的地块,则MRZG的聊天栏中将会出现“欢迎您来到我的家!MRZG”这样一句话。

 

外接程序方式

外接程序是完全独立于HiPiHi客户端的第三方程序,它可以向客户端传递脚本代码,从而令客户端完成指定的功能。

目前,外接程序和HiPiHi客户端的脚本交互通过磁盘文件,文件名称为:

Extend.lua 位于目录 %InstallPath%/Script/Lua/Extend下。

外接程序只要将需要客户端解释执行的脚本代码写入该文件,并以Windows消息的方式通知客户端,客户端将会读取该文件中的内容并执行。

来顶一下
近回首页
返回首页

上一篇: 下面没有链接了


下一篇: Hipihi Poser制作自定义动作小教程(1)简介与使用技巧

  
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
"虚拟地产"全新创富时代 准备好了吗
"虚拟地产"全新创富
Second Life 对现实生活有何影响?
Second Life 对现实生
HiPiHi荣获“CHINICT新星企业奖”
HiPiHi荣获“CHINICT新
山人参加广告趋势论坛,畅谈虚拟世界新媒体的“非传统”特质
山人参加广告趋势论坛
相关文章
栏目更新
栏目热门