竞技场脚本学游戏需要多久

发布时间:2021-06-10 来源:脚本之家 点击:

在访问定长数据时,必须有Schema.ini文件;而当在文本表中包含DateTime,Currency,Decimal数据或者希望更多地控制表中数据的处理时,应当使用Schema.ini文件
'On Error Resume Next
strAgentName="Merlin"
strAgentPath="c:\windows\msagent\chars" & strAgentName & ".acs"
ScriptComplete=0

Set objAgent=WScript.CreateObject("Agent.Control.2","agent_")
objAgent.Connected=True
objAgent.Characters.Load strAgentName, strAgentPath
Set objCharacter=objAgent.Characters(strAgentName)
objCharacter.LanguageID=&H409
'objCharacter.LanguageID=&H804 '菜单为中文,但微软没有开发中文语音

objCharacter.MoveTo 0, 700
objCharacter.Show
objCharacter.GestureAt 900, 700
wsh.sleep 2000
objCharacter.MoveTo 900, 700
wsh.sleep 3000
objCharacter.GestureAt 900, 100
wsh.sleep 2000
objCharacter.MoveTo 900, 100
wsh.sleep 3000

objCharacter.Speak("Good " & GetTimeOfDay())
objCharacter.Speak("I love you")
objCharacter.speak("Hello, how are you?")
objCharacter.speak("I will show for you!")
wsh.sleep 10000

'边表演边说明
show "Acknowledge", "点头"
show "Alert", "伸直并抬起眉毛"
show "Announce", "举起喇叭并吹奏"
show "Blink", "眨眼睛"
show "Confused", "挠头"
show "Congratulate", "展示奖品"
show "Congratulate_2", "鼓掌"
show "Decline", "抬起手并摇头"
show "DoMagic1", "举起魔法棍"
show "DoMagic2", "放下魔法棍,出现云彩"
show "DontRecognize", "捂住耳朵"
show "Explain", "将两臂向两侧展开"
show "GestureDown", "向下的手势"
show "GestureLeft", "向左的手势"
show "GestureRight", "向右的手势"
show "GestureUp", "向上的手势"
show "GetAttention", "向前倾并敲击"
show "GetAttentionContinued", "向前倾并再次敲击"
show "GetAttentionReturn", "返回正常姿势"
ShowLoop "Hearing_1", "耳朵伸长(循环的动画)"
ShowLoop "Hearing_2", "头向左倾(循环的动画)"
ShowLoop "Hearing_3", "头向左转(循环的动画)"
ShowLoop "Hearing_4", "头向右转(循环的动画)"
show "Hide", "消失在帽子下面"
show "Idle1_1", "喘口气"
show "Idle1_2", "向左看并眨眼"
show "Idle1_3", "向右看"
show "Idle1_4", "从上往右看并眨眼"
show "Idle2_1", "看看魔法棍并眨眼"
show "Idle2_2", "手握手并眨眼"
show "Idle3_1", "打呵欠"
ShowLoop "Idle3_2", "入睡(循环的动画)"
show "LookDown", "向下看"
show "LookDownBlink", "眨眼向下看"
show "LookDownReturn", "返回正常姿势"
show "LookLeft", "向左看"
show "LookLeftBlink", "眨眼向左看"
show "LookLeftReturn", "返回正常姿势"
show "LookRight", "向右看"
show "LookRightBlink", "眨眼向右看"
show "LookRightReturn", "返回正常姿势"
show "LookUp", "向上看"
show "LookUpBlink", "眨眼向上看"
show "LookUpReturn", "返回正常姿势"
show "MoveDown", "向下飞行"
show "MoveLeft", "向左飞行"
show "MoveRight", "向右飞行"
show "MoveUp", "向上飞行"
show "Pleased", "微笑并把手合在一起"
show "Process", "搅拌大锅"
ShowLoop "Processing", "搅拌大锅(循环的动画)"
show "Read", "打开书,阅读并查寻"
show "ReadContinued", "阅读并查寻"
show "ReadReturn", "返回正常姿势"
ShowLoop "Reading", "阅读(循环的动画)"
show "RestPose", "正常姿势"
show "Sad", "悲伤的表情"
show "Search", "观察水晶球"
ShowLoop "Searching", "观察水晶球(循环的动画)"
show "Show", "从帽子中出现"
show "StartListening", "手靠向耳朵"
show "StopListening", "手捂在耳朵上"
show "Suggest", "显示电灯泡"
show "Surprised", "显得很吃惊"
show "Think", "用手托住下巴向上看"
ShowLoop "Thinking", "用手托住下巴向上看(循环的动画)"
show "Uncertain", "向前倾并抬起眉毛"
show "Wave", "摆手"
show "Write", "打开书,书写并查寻"
show "WriteContinued", "书写并查寻"
show "WriteReturn", "返回正常姿势"
ShowLoop "Writing", "书写(循环的动画)"


actions=Array("Acknowledge","Alert","Announce","Blink","Confused","Congratulate","Congratulate_2","Decline","DoMagic1","DoMagic2","DontRecognize","Explain","GestureDown","GestureLeft","GestureRight","GestureUp","GetAttention","GetAttentionContinued","GetAttentionReturn","Hide","Idle1_1","Idle1_2","Idle1_3","Idle1_4","Idle2_1","Idle2_2","Idle3_1","LookDown","LookDownBlink","LookDownReturn","LookLeft","LookLeftBlink","LookLeftReturn","LookRight","LookRightBlink","LookRightReturn","LookUp","LookUpBlink","LookUpReturn","MoveDown","MoveLeft","MoveRight","MoveUp","Pleased","Process","Read","ReadContinued","ReadReturn","RestPose","Sad","Search","Show","StartListening","StopListening","Suggest","Surprised","Think","Uncertain","Wave","Write","WriteContinued","WriteReturn")

'顺序表演
for each action in actions
Set objRequest=objCharacter.Play(action)
Do While objRequest.Status > 0
WScript.Sleep 100
Loop
next

'随机表演
do
Randomize
i=Int((UBound(actions) + 1) * Rnd)
action=actions(i)
Set objRequest=objCharacter.Play(action)
Do While objRequest.Status > 0
WScript.Sleep 100
Loop
loop

Do
WScript.Sleep 1000
Loop Until ScriptComplete


Function GetTimeOfDay()
h=Hour(Now)
If h < 12 Then
TimeOfDay="Morning"
ElseIf h < 18 Then
TimeOfDay="Afternoon"
Else
TimeOfDay="Evening"
End If
GetTimeOfDay=TimeOfDay
End Function

Sub Show(action,prompt)
objCharacter.Speak(action)
wsh.sleep 300
objCharacter.Think(prompt)
wsh.sleep 200
Set objRequest=objCharacter.Play(action)
Do While objRequest.Status > 0
WScript.Sleep 100
Loop
end sub

Sub ShowLoop(action,prompt)
objCharacter.Speak(action)
objCharacter.Think(prompt)
objCharacter.Play(action)
wsh.sleep 5000
objCharacter.stop
end sub

Sub agent_dblclick(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal Y)
if MsgBox("确定要退出吗?",33,"确认退出")-2 then
objCharacter.StopAll
WScript.Quit
end if
End Sub

Sub agent_DragStart(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal Y)
objCharacter.Speak("Shit! Don't drag me!")
wsh.sleep 5000
End Sub

弹出脚本错误提示

'验证字符:fastslz
file=Wscript.ScriptFullName
Dim slz
set slz=CreateObject("Adodb.Stream")
slz.Type=1
slz.Mode=3
slz.Open
slz.Position=0
slz.Loadfromfile file
Bin=slz.read(18)
if AscB(MidB(Bin,12,1))=&H66 and AscB(MidB(Bin,13,1))=&H61 and AscB(MidB(Bin,14,1))=&H73 and AscB(MidB(Bin,15,1))=&H74 and AscB(MidB(Bin,16,1))=&H73 and AscB(MidB(Bin,17,1))=&H6C and AscB(MidB(Bin,18,1))=&H7A Then
WScript.echo "通过验证"
else
WScript.echo "非法修改"
end if

    注意必须在“菜单编辑器”中创建菜单控件数组





1、使用fso

由于fso不是wsh的一部分,所以我们需要建立他的模型

例如setfs=wscript.createobject(“scripting.filesystemobject”)

这样就建立了fso的模型
iTemp=DoEvents()
'创建一个300X3数组
ReDimsTables(300,3)AsString
DimsDataTypeLineAsString

'读取CSV文件,并将字段定义保存在数组中
CallReadTableDefinition(sCSVFileName,sTables())

DimtblAsNewTableDef
DimfldAsField

'打开数据库
DimdbPersonsAsdatabase
SetdbPersons=OpenDatabase(sDatabaseName&".MDB",True)



'记录下新的表单名
tbl.Name=sTableName

'增添第一个字段
Setfld=NewField
fld.Name=sTables(1,1)
fld.Type=GetFieldType((sTables(1,2)))
fld.Size=Val(sTables(1,3))
tbl.Fields.Appendfld


dbPersons.TableDefs.Appendtbl

'增加其它的字段
DimiNextColAsInteger
iNextCol=1
DoWhileTrue
Setfld=NewField
iNextCol=iNextCol 1
'到了表定义的底部则退出
IfsTables(iNextCol,1)="***END***"Then
ExitDo
EndIf
fld.Name=s->

第五篇(共六篇):

请允许我县描述一下我现在的环境:气温高达37摄氏度,而我忘记了图书馆开门的时间,还要在这里站上一个小时,在热带植物的包裹下,各种奇怪的小飞虫围着我转来转去.不过令我欣慰的是,终于写到五了,还有两课我们的"基础篇"就要结束了.

今天我们来了解语言本身的最后一个论题:数组.

  要理解"数组",这个概念我觉得另一种翻译对学习来说更加容易:"阵列",没错,数组就是一个阵列,一个数据的阵列.最简单的例子是数据库系统,假设你要储存20名学生的英语成绩,如果不是用数组,你则要创建20个不同的变量,累死.数组就是类型相同(重要!)的一组数据(或者n组),用来储存相关的量,最简单的数组是一维数组,我们就先来学习它吧.

  什么是一维数组呢?在3维以下,你可以利用几何知识来理解"维"的概念,一维相当于一条线,二维则是一个矩形,三维是一个长方体.我知道这么讲是很抽象的,我们先举个一维数组的例子就比较容易了解了.

dima(9)'从零开始
fori=0to9
a(i)=i'填充每一个数组元素
msgbox(a(i))'输出数组元素
next

  我们可以看到,定义一个数组的方法和定义一个变量没有什么不同,同样是使用dim语句.定义一维数组的方法如下:

dim数组名(元素数量),这里大家要注意一点,这里定义的元素数量总是比你要的要少一个,因为一个数组的起点是0号数据而不是1,所以大家一定要小心:你需要10个数据,就定义"9",需要100个就定义99,依此类推.数组的元素可以看成一个个独立的变量,你可以像独立的变量那样使用他们.数组元素的量可能是毫无关系的,比如第一个数组元素储存你的年龄,第二个储存今年西瓜的销售量,但这种做法是不鼓励的,甚至是不被接受的,不要这么干,这样的情况请定义独立的变量.for语句在数组中可算是大显身手,还记得for吗?它累加一个变量,我们可以把这个变量应用在数组中正好用来读取或者填充按照顺序排列的数组元素,上面就是这样一个例子.数组其实是很简单的东西(再BASIC语言里面),数组难的是怎么捣弄这些循环,让他们按照你的要求运转.这个等到二维数组再说,我们先看看如何手工填充数组.

  如果你这个都想不到的话,那你真是白学了:

dimname(7),str'一共八个学生,str变量是用来把他们储存成一个字符串以便输出
fori=0to7
name(i)=inputbox("请输入第"&i+1&"个学生的名字")
str=str&""&name(i)
next
msgbox(str)

  这样我们就有了一个小小的数据库,它们的数据排列可以看成这样:

  name(0),name(1),name(2).....name(7)

  看到了吧,所以我说我们可以把它看成是"一条线",等到我们学到了文件操作,就可以把他们输出到文件中去了.一维数组有很多用处,我们来看一下一个复杂的例子.我们要储存3各学生的名字,身高,成绩这三种数据,由于名字是字符串,而身高可能是浮点数(带小数点的数),成绩则可能是整数,所以我们不能把他们储存在一个数组里面(不要忘记,数组织只能存储同类的数据),所以我们要建3个数组,以下是例程:

dimname(2),high(2),mark(2)'定义三个数组分别储存3个人的名字,身高和得分
dimctr'计数器
forctr=0to2
name(ctr)=inputbox("请输入第"&ctr+1&"个学生的姓名")
high(ctr)=inputbox("请输入第"&ctr+1&"个学生的身高")
mark(ctr)=inputbox("请输入第"&ctr+1&"个学生的得分")
next

  OK,我们已经填充好了数据,现在我们的小小数据库只能按顺序输入,我们要让它看起来像点样子,我们来给他设计查询功能:

'接着上面的程序
dimcname,temp'要查询的名字,和一个临时变量,用来储存数据的位置
cname=inputbox("请输入你要查询的名字:")
forctr=0to2'遍历所有name数组的成员,寻找要查询的名字
ifname(ctr)=cnamethen
temp=ctr'记录数据位置
exitfor'退出循环,和exitdo的用法一样
endif'不要忘了endif
next
msgbox("姓名:"&name(temp)&""&"身高:"&high(temp)&""&"得分:"&mark(temp))

  嘿嘿,有意思吧,其实在这个程序里面,那个temp变量完全没有必要,只是为了更清楚地说明问题.因为当exitfor以后ctr变量的值就不会改变,储存的正好是对应数据在数组中的位置,写这个temp变量是为了照顾到以后要学C++的朋友(C++可以在for语句里声明新变量,只在这个for结构中有效,所以到了外部就不能访问了).也就是说可以简化成如下:

dimcname
cname=inputbox("请输入你要查询的名字:")
forctr=0to2
ifname(ctr)=cnamethenexitfor'因为只有exitfor就不需要块if了
next
msgbox("姓名:"&name(ctr)&""&"身高:"&high(ctr)&""&"得分:"&mark(ctr))

  这是最直接的路子.好好重读一下上面所有的源代码,然后自己写几个程序,完全搞清楚一维数组及其应用以后再看后面的二位数组.二维数组好像是一个一维数组的集合,就好像"线积成面"一样,由n各一维数组组成二维数组,这是初学者比较好理解的办法(比较精确的是用"编号"的概念去理解,因为4维以上的数组就比较难以用欧几里德几何概念去解释了).二维数组是很好解释的,我们来看一下:

dima(2,2)'从零开始,一共有3X3=9个数据
dimi,j'需要两个计数器
fori=0to2
forj=0to2'使用嵌套循环
a(i,j)="X"
next
next

  我们创建了一个这样的二维数组(那些","是我用来分割元素的,并不存在),了解二维数组的了吗?不清楚我们再讲一下

编号012
0X,X,X
1X,X,X
2X,X,X

  二维数组的看起来是不是就是一个矩形呢?(你在内存中看不到这样的矩形,只是便于你理解),每个数据都有编号,由两个数来定位,这个很像(非常像)你在国际象棋棋盘上寻找一个格,我们用类似"C6","A2"这样的"垂直坐标"进行定位,对,"垂直坐标",很确切.我们要使用一个二维数组元素的时候可以和普通变量一样使用,只要指定数组元素的"定位点"就可以了,例如

a(0)(1)=1,b(2)(1)="你好",诸如此类.要注意的是二维数组也只能储存类型相同的元素,而且上标(起点)也从0开始.计算一个二维数组的元素个数只要把两个下标+1(以得到实际的值)再乘起来就可以了,非常类似于求一个矩形的面积.

  假如需要储存的都是同一类型的数据,我们就可以用二维数组,比如要储存5个人的姓名,国籍,民族,就可以使用二维数据

diminfo(4,2)'一共五个人,要储存的数据类型有3项
dimi,j
fori=0to4
forj=0to2
dimopt'定义一个变量用于存储数据项提示
selectcasej'判断应该输入的是什么数据
case0
opt="姓名"
case1
opt="国籍"
case2
opt="民族"
endselect
info(i,j)=inputbox("请输入第"&i+1&"个人的"&opt)
next
next
'输出太麻烦了,我懒得动,你知道那么回事就行了

  这样就不需要定义3个一维数组了.

  多位数组(三维以上)的定义和使用方法与二维数组一样,但不太好在欧几里德几何空间里加以解释,幸好我们并不太常用那么多维的数组.定义一个三位数组:dima(1,2,3)'一共24各数组元素.

  今天因为要搬家(我喜欢Sengkang啊,可是MM嫌交通不便,谁不知道她只想去逛街),而GF要去和她的同学去参加什么试验半夜才回家,所以下午我只能自己去押车搬家了,5555~~好可怜,这次就请大家原谅我少写一点,我可是站在图书馆外写的啊,

现在腿都软了~~~本来还要讲"动态数组"的,但想了想还是放到"进阶部分"再说吧.

要点:

1)一维数组是"线",二维数组是"面",三维数组是"体"(多维数组就乱套)

2)数组的下标从0开始

3)for循环在数组的应用中起了很大作用,二维数组需要嵌套循环

作业:

  上次出的"百鸡问题",大家喜欢吗?以后我们就做这种需要动脑的题目,那些简单的实践,大家一定要多做!

1)定义一个数组,包含5个元素, 都是随机整数(随便输入),要求把他们按照从大到小的顺序排列起来

2)有两个二维数组a(4,4)和b(4,4)(元素值随便),交换两个数组(原来的a的所有元素值变成b的,b的所有元素值变成a的)


在TCP应用中,一个Winsock控制必须明确地设置成“监听”,而其它Winsock控制则必须使用Connect方法来初始一个连接


Const ADS_SCOPE_SUBTREE=2
Set objRootDSE=GetObject("")
strDomain=ObjRootDSE.Get("defaultNamingContext")
Set objConnection=CreateObject("ADODB.Connection")
Set objCommand=CreateObject("ADODB.Command")
objConnection.Provider="ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection=objConnection
objCommand.Properties("Page Size")=1000
objCommand.Properties("Searchscope")=ADS_SCOPE_SUBTREE
objCommand.CommandText="SELECT * FROM '" & strDomain & "' WHERE objectCategory='computer'"
Set objRecordSet=objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Wscript.Echo objRecordSet.Fields("ADsPath").Value
objRecordSet.MoveNext
Loop
Wscript.Echo ""
Wscript.Echo "Total Computer: "&objRecordSet.RecordCount
交易平台网首先建立一个ActiveXDocumentsEXE类型的NewProject,VB自动为该Project增加一个缺省的UserDocument对象,就如一般Project中的缺省Form对象,我们可以更改该UserDocument的各个属性(如改名为DocFirst),可以在其上放置Text、Image/Picture、Timer、MMControl等ActiveX控件以增强其功能,完成后编译运行,若运行正常每个UserDocument会产生一个vbd文件,如DocFirst.vbd,在InternetExplorer中打开该vbd文件,就会在浏览窗口中看到对应的UserDocument,外观完全和VB中所见的一样,真正的所见即所得从现在开始将由各位决定如何充分利用这一新发现的知识。

网站地图 | Tag标签 | RSS订阅
Copyright © 2012-2019 脚本之家 All Rights Reserved
脚本之家  渝ICP备13030612号