FA0.3版,脚本函数参考

这是以前在程序编写过程之中整理的。

这个文档的部分解释可能不全(如果需要可以发帖询问),并且偶有与Honeyfox提供的脚本编辑器有所出入的地方(以这个文档为准)。

“ReportMsg” ,“”
向网络调试器发送信息

///////////////////////////////

脚本基本函数

“CallFunction”,“s”

脚本.调用函数

ScriptName

//Current Stack Call

“StartThread”,“ss”
脚本.开线程
ScriptName
ScriptThreadName

“PauseThread”,“s”
脚本.暂停线程
ScriptThreadName

“ContinueThread”,“s”
脚本.继续线程
ScriptThreadName

“KillThread”,”s”
脚本.终止线程
ScriptThreadName

Audio: 全局声音接口

“Audio.PlayMusic”,“s”

声音.放音乐

Music Name 无路径($\music),全名字,包含后缀

“Audio.SetMusicVolume”,”v”

声音.调整音乐声音

Float 0~1

Audio.StopMusic,””

Audio.PlaySoundDirect,” sv”

按文件名播放,不含”.wav”

Frame: 代表整个游戏进程,是全局静态唯一的。

/////////////////////////////////////////

命令ID,接参数

“Frame.StartScene”
“s”

“Frame.StopScene”
“”

“Frame.LoadGlobalSoundFromDir”
“s”

“Frame.Command”
“*”

“Frame.QuitGame”
“”

GUI,即GlobalUI:跟Frame是一个级别,全局静态唯一

“GUI.LoadFromFile”,
“s”

GUI.ControlMove,“svvvv vvv”
控件.移动
ControlName控件名
Destx目的
Desty
Movetype:1-Linear,2-EaseIn移动模式
Duration移动时间
Decay (EaseIn)距离衰减率
MaxSpeed(EaseIn)最大速度
MaxAccelerate(EaseIn)最大加速

“GUI. ControlMoveOffSet” ,“svvvv vvv”
控件.差量移动
ControlName同上
Offsetx
Offsety
Movetype:1-Linear,2-EaseIn
Duration
Decay (EaseIn)
MaxSpeed(EaseIn)
MaxAccelerate(EaseIn)

GUI. ControlResize
GUI.ControlResizeFromCenter
,“svvvv vvv”
控件.大小变化
ControlName名
Sizex新大小
Sizey
Movetype:1-Linear,2-EaseIn移动模式同上
Duration
Decay (EaseIn)
MaxSpeed(EaseIn)
MaxAccelerate(EaseIn)
GUI.ControlRestorePosition,“svvv”
GUI.ControlRestoreSize
控件移动回原来的位置,大小
控件名
移动方式
持续时间
距离衰减

"GUI.ControlLayerChangeColor ",“svvvv vv”
控件.某一层变色
ControlName名
Index 组件号
Duration需要时间
Red红
Green绿
Blue蓝
Alpha透明

GUI. ControlSwitch
“svvvv vv”
控件,切换到某一层
ControlName名
Index 组件号
Duration需要时间
Red红
Green绿
Blue蓝
Alpha透明

“GUI. ControlEnable”,“sv”
控件.允许点击
ControlName
Enabled:0-1

GUI. ControlChangeText “ss”
控件改变文字
ControlName
Text

GUI.ControlSetTextAsInt “sv”
GUI.ControlSetTextAsFloat “sv”
控件改变文字
ControlName
Value

GUI.ControlGroupMoveOffset"
“svvvvv”
GUI.ControlGroupResize"
“svvv”
GUI.ControlGroupResizeFromCenter"
“svvv”
GUI.ControlGroupSwitch"
“svvvvvv”
GUI.ControlGroupEnable"
“sv”
GUI.ControlGroupRestorePosition
GUI.ControlGroupRestoreSize
第一个参数是Group名字,其余不变

GUI.Command"
“*”

SUI,即SceneUI:与Scene层次一样

SUI所有操作函数与GUI一样,只需要将GUI替换为SUI

scene
代表场景(关卡),比Frame低一级

“Scene.LogicPause”
“”
“Scene.LogicContinue”
“”

“Scene.LoadSoundFromDir”
“s”

“Scene.ReleaseSound”
“”

“Scene.LoadOEFromFile”,
,“s”

“Scene.ReleaseOE”,
,“”

“Scene.LoadObject3DFromListFile”,
,“s”

“Scene.ReleaseObject3D”,
,“”

“Scene.LoadFeatureFromDir”
“ss”

“Scene.ReleaseFeature”
“”

“Scene.LoadAnimationFromDir”
“ss”

“Scene.ReleaseAnimation”
“”

Scene.LoadStripesFromDir
“ss”

Scene.ReleaseStripes
“”

“Scene.LoadUnitsFromDir”
“ss”

“Scene.LoadFormationsFromDir”
“ss”

“Scene.ReleaseUnitsAndFormations”
“”

“Scene.LoadWeaponsFromDir”
“ss”

“Scene.ReleaseWeapons”
“”

OE,全称Overlay Effect

一个OE本质上就是一个四边形

“OE.SetVertex”
“svvvv”
设坐标

Name

Vtx index
坐标序号0~3

X

Y

z

“OE.SetVisible”
“sv”

Name

0-1

“OE.SwitchColor”
“svvvv v”

Name

Duration

R

G

B

A

“OE.SetUVSpeed”
“svv”

Name

SpeedU

SpeedV

OE.ChangePositionType
“sv”

Name

Type=

OTPT_Foreground=1

OTPT_AboveScene=2

OTPT_BlowScene=3

OTPT_Background=4

///////////////////////

Camera,light,fog

“Camera.ChangePosition” ,“vvvvvvvv”

摄像机.移动位置

8个参数

Type=0,1,2

Destx

Desty

Destz

Duration

Decay

MaxSpeed

MaxAccelerate

“Camera.ChangeLookAt”,“vvvvvvvv”

摄像机.移动视点

8个参数

Type=0,1,2

Destx

Desty

Destz

Duration

Decay

MaxSpeed

MaxAccelerate

“Camera.ChangeRollAngle”,“vvvvvv”

摄像机.自旋转

6个参数

Type=0,1,2

Dest

Duration

Decay

MaxSpeed

MaxAccelerate

“Camera.Shake”,“vv”

幅度

时间

Camera.ChangeRangeFar,”v”

Camera.ChangeRangeNear,”v”

调整视野的远近限度

//////////////////////////////////////////

“Lights.Create”,“vv”

灯.创建

Index

Type D3DLIGHT_POINT=1,D3DLIGHT_SPOT=2,D3DLIGHT_DIRECTIONAL=3

“Lights.TurnOn”,“v”

灯.开

Index

“Lights.TurnOff”,“v”

灯.关

Index

“Lights.ChangeAmbient”,“vvvvvvvv”

灯.改变环境光颜色

8个参数

Index

Change type

R

G

B

A

Duration

Decay

“Lights.ChangeDiffuse”,“vvvvvvvv”

灯.改变漫射光颜色

8个参数

Index

Change type

R

G

B

A

Duration

Decay

“Lights.ChangeSpecular”,“vvvvvvvv”

灯.改变镜面光颜色

8个参数

Index

Change type

R

G

B

A

Duration

Decay

“Lights.ChangePosition”,“vvvvvvvvv”

9个参数

灯.移动位置

Index

Move type

X

Y

Z

Duration

Decay

Max speed

Max accelerate

“Lights.ChangeLookAt”,“vvvvvvvvv”

灯.移动视点

9个参数

Index

Move type

X

Y

Z

Duration

Decay

Max speed

Max accelerate

/////////////////////////////////////////////////////

“Fog.Enable”,“”

雾.开

“Fog.Disable”,“”

雾.关

“Fog.ChangeColor”,“vvvvv”

雾.变色

R红

G绿

B蓝

A透明

Duration//默认是linear if==0 then immediate

“Fog.ChangeDistanceNear”,“vv”

改变fog开始距离

Distance near距离

Duration持续时间

////仅支持Linear

“Fog.ChangeDistanceFar”,“vv”

改变fog结束距离

Distance near距离

Duration持续时间

////仅支持Linear

Terrain地面

“Terrain.LoadFromFile”
“s”

“Terrain.Start”
“”

“Terrain.Stop”
“”

“Terrain.ChangeSpeed”
“vvvvvv”

“Terrain.ChangeOffsetX”
“vvvvvv”

“Terrain.ChangeHeight”
“vvvvvv”

Dest Value
Movetype:0-immediate,1-Linear,2-EaseIn
Duration
Distance Decay (EaseIn)
MaxSpeed(EaseIn)
MaxAccelerate(EaseIn)

“Terrain.DisableLoop”
“s”

用于解除地形循环锁

GAnim2D=Global Animation 2D

2D动画,与UI配合使用

“GAnim2D.LoadFromDir”
“ss”

Directory, Filter

“GAnim2D.Emit”
“svvvv”

Anim Name
Posx,Posy
SpeedX,SpeedY

“GAnim2D.Clear”
“”

Object:三维物体

本系列的函数主要操作三维物体零件之间的位置关系

“Object.Move”
“vvvvv vvvv”

“Object.MoveDelta”
“vvvvv vvvv”

零件移动:
1 零件ID
234 Dest XYZ
5 移动方式
6 持续时间
7 距离衰减
8 Max speed
9 Max Accelerate

“Object.RotateAroundX”
“vvvvv vv”

“Object.RotateAroundY”
“vvvvv vv”

“Object.RotateAroundZ”
“vvvvv vv”

零件转动:
1零件ID
2 Dest Angle
3移动方式
4 持续时间
5 距离衰减
6 Max speed
7 Max Accelerate

“Object.Show”
“v”

零件ID

“Object.Hide”
“v”

零件ID

“Object.SelectPart”
“”

没用了

“Object.GetPartIndex”
“s”

获取零件ID

“Object.EmitAnim”
“vvvvv vvvv”

零件发动画效果

1 动画序号

2 零件ID

3 变换方式

456 偏移坐标

789 速度

Object.MapPartPositionToGlobal
“vvvv”

零件ID

XYZ

将零件坐标系的相对坐标变换为全局坐标

结果保存在Result0, Result1, Result2中

Object.MapPartSpeedToGlobal
“vvvv”

零件ID

XYZ

将零件坐标系的相对速度矢量变换为全局矢量

结果保存在Result0, Result1, Result2中

Object.CreateStripe/////注意,这个不是系统函数,而是带返回值的数值函数

返回Stripe的ID

Object.PullStripe
" vvvvvvvvv"

1 Stripe ID

2 零件ID

3 变换方式

456 XYZ

789 速度XYZ

Object.KillStripe
“v”

Stripe ID

Position:位置属性

用于Formation,Unit,Feature,Weapon等逻辑物体

“Position.SetType”
“v”

移动方式

0 = 速度与角度分离
MoveT_Seperate

1 = 绝对速度+角度转动
MoveT_SpeedToAngle

“Position.MoveXYZ”
“vvvvv”

移动

XYZ坐标,

移动方式 见下

持续时间

Move_Immediate=0

Move_Linear=1

Move_Easein=2

Move_EaseInOut=3

Move_Approach=4

Move_Shoot=5

Move_ShootFree=6

Move_Stop=7

“Position.SetMaxSpeed”
“v”

“Position.SetMaxAccelerate”
“v”

“Position.SetDistanceDecay”
“v”

设置距离衰减

“Position.SetSpeedDecay”
“v”

设置速度衰减

“Position.SetAccelerate”
“vvv”

如果是3个参数,即设置加速度为XYZ

如果是1个参数,即设置加速度绝对值大小为XYZ

“Position.RotateX”
“vvv”

目标角度

移动方式

持续时间

“Position.SetRotateXMaxSpeed”
“v”

“Position.SetRotateXMaxAccelerate”,“v”

“Position.SetRotateXDistanceDecay”,“v”

“Position.SetRotateXSpeedDecay”
“v”

“Position.SetRotateXAccelerate”
“v”

“Position.RotateY”
"vvv"同RotateX

“Position.SetRotateYMaxSpeed”
“v”

“Position.SetRotateYMaxAccelerate”
“v”

“Position.SetRotateYDistanceDecay”,“v”

“Position.SetRotateYSpeedDecay”
“v”

“Position.SetRotateYAccelerate”
“v”

“Position.RotateZ”
"vvv"同RotateX

“Position.SetRotateZMaxSpeed”
“v”

“Position.SetRotateZMaxAccelerate”,“v”

“Position.SetRotateZDistanceDecay”,“v”

“Position.SetRotateZSpeedDecay”
“v”

“Position.SetRotateZAccelerate”
“v”

Feature

无生命物体

“Feature.Create”
“svvv”

名字

XYZ

后面可接更多参数

“Feature.EmitAnim”
“vvvvv vv”

放动画

1 Anim序号

2 变换方式

345 XYZ

678 XYZ速度

“Feature.Destroy”
“”

“Feature.PlaySound”
“vv”

Formation:小队

Scene.CreateFormation
“ssvvv vvvv*”

1 Fmt Name,

2 Data Name,

3 Side

456 x,y,z

789 angle xyz

后接参数表

Scene.SelectFormation
“”

可接受1个参数,可为字符串(名字)或值(ID)

Scene.CommandFormation
“*”

第一个参数标志formation,可为字符串(名字)或值(ID)

后接参数列表

Formation.CreateUnitSimple
“v”

参数表示unit的index(从1开始)

Formation.CreateUnit
“vvvvv vv*”

1 Unit序号,从1开始

234 Xyz(全局)

567 Angle xyz

后接参数

Formation.Destroy
“”

Formation.MoveUnit
“vvvv”

Unit序号

XYZ

自动在unit的脚本之中,启动OnMove线程

Formation.Command
“*”
与Scene.CommandFormation有区别

用于command当前的Formation

纯参数列表

Formation.CommandUnit
“v*”

Unit index

后接参数

Formation.CommandAllUnits
“*”

纯参数列表

Formation.GetUnitPosition
“v”

获取unit的全局坐标,保存在result012之中

Formation.SelectUnit
“v”

选取unit为当前unit

TF:Target Facility

用于Formation,Unit和Weapon

“TF.ChangeTargetType”
“vv”

Target_Random=0
全随机

Target_Distance=1
直线距离

Target_X=2
X距离

Target_Y=3
Y距离

Target_Z=4
Z距离

Target_AngleXZ=5
XZ偏角距离

Target_AnglePitch=6
俯角距离

最大允许距离

"TF. ScanTarget
“”

自动挑选Target

“TF.SelectTargetByID”
“v”

选择ID为当前(唯一)Target

TF.SelectTargetByIndex
“v”

将序号为index的ID放到最前,清空其它target

“TF.AppendTargetByID”
“v”

添加ID到Target组最后

“TF.RemoveTargetByIndex”
“v”

去除固定序号Target

“TF.RemoveTargetByID”
“v”

去除某Target ID

“TF.ClearTarget”
“”

清空Target列表

“TF.GetTargetPosXYZ”
“v”

获取Target的位置

结果保存在Result0, Result1, Result2中

Weapon

Weapon.EmitAnim
“vvvvv vvv”

见"Feature.EmitAnim"

Weapon.CreateSubWeapon
“vvvvv vvv”

1 subWeaponindex,

2 TransformType,

345 xyz

678 direction xyz

Weapon.PlaySound
“vv”

Weapon.Destroy

“”

Unit

Unit.EmitAnim
“vvvvvvvv”

见"Feature.EmitAnim"

Unit.CreateWeapon
“vvvvvvvv”

放武器

1 weapon序号

2 变换方式

345 XYZ

678 XYZ速度

Unit.PlaySound
“vv”

Unit.Destroy
“”

Unit.GetPositionByFormation
“”

获得本单位在小队中标准位置的全局坐标

Unit.DefaultOnHit
“v”

调用该Unit默认的中弹处理过程。

包括:1:扣血,2:如果血量少于0,则自动开始OnDestroy线程。(线程名为” OnDestroy”)

DamageField

DamageField.Create
“vvvvv v”

1,2,3:全局坐标XYZ

4:伤害半径

5:伤害类型

6:伤害值

Player

Player.GainMetal
“v”

获取金属资源

Player.GainEnergy
“v”

获取能量资源

好贴有帮助,饭前一顶

此贴甚好,若能补齐所有常数列表就更好了。