




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
游戏脚本这里我们用LUA脚本语言编写脚本。(主页是/网上的最新版是5.1版)点这下载。以下内容参考了坛上一位朋友的文章,在此表示感谢。自定义函数:RunScript Suicide KillScript GetNUnitsInCircleGetNUnitsInAreaGetNScriptUnitsInAreaGetNUnitsInScriptGroupLandReinforcementWinDrawLooseGiveCommand, CmdGiveQCommand, QCmdShowActiveScriptsChangeWarFogEnableAviationDisableAviationChangePlayerGodSetIGlobalVar, SetFGlobalVar, SetSGlobalVarGetIGlobalVar, GetFGlobalVar, GetSGlobalVarGetObjectHPsGetNUnitsInPartyGetNUnitsInPartyUFGetNUnitsInPlayerUFChangeFormationTraceDisplayTraceObjectiveChangedGetNAmmoGetPartyOfUnitsDamageObjectGetUnitStateGetSquadInfoIsFollowingGetFrontDirGetActiveShellTypeRandomFloatRandomIntGetMapSizeIsPlayerPresentGetObjCoordGetScriptAreaParamsSwitchWeatherSwitchWeatherAutomaticGetNUnitsInSideAddIronManDeleteReinforcementViewZoneIsStandGroundIsEntrenchedGetAviationState单位指令动作代码: (联系下文Cmd与QCmd)0 强制移动(Q)1 攻击单位2 攻击非单位物体3 移动攻击(A)4 装载单位5 卸下单位6 进入建筑/堑壕7 离开建筑/堑壕8 旋转9 停止所有动作13 停止并进入戒备状态50 站岗14 埋伏15 校准射击(X)16 火力压制(Z)19 召唤轰炸机20 召唤战斗机21 召唤侦察机22 召唤伞兵机36 召唤攻击机23 补给单位24 修理单位29 使用双筒望远镜31 挂载火炮32 部署火炮34 解散步兵班35 形成编队39 跟随43 补给士兵45 筑垒防护46 切换弹药种类脚本文件举例: (我们必须用“Base”给敌军单位定义脚本区域,我们用脚本代码100来消灭所有单位。)function ToWin() if ( GetNUnitsInScriptGroup(100) 1) then Loose(); Suicide(); end;end; function Init() RunScript( ToWin, 3000); RunScript( TobeDefeated, 3000);end; 自定义函数详细讲解: RunScriptRunScript (脚本函数名称(字串),运行周期(单位毫秒), ,重复执行次数(可以不定义,即默认为无限循环);举例: RunScript (Objective12, 3000, 3);SuicideSuicide (); 如果在通过RunScript执行的函数主体调用Suicide,此函数在完成后将不再重复运行。KillScriptKillScript (脚本函数名称);消除已激活(至少执行一次)的特定脚本函数名称的脚本语句。GetNUnitsInCircleGetNUnitsInCircle (iPlayer, X, Y, Radius)iPlayer:玩家代码,X、Y为坐标上的圆心值,Radius是半径大小。返回以坐标X,Y的点为圆心,Radius为半径的圆形区域内特定玩家的单位数量。GetNUnitsInAreaGetNUnitsInArea (iPlayer, strScriptAreaName)strScriptAreaName脚本区域名称(字串在地图编辑器中设置),iPlayer:玩家代码。 GetNScriptUnitsInAreaGetNScriptUnitsInArea (iScriptID, strScriptAreaName)iScriptID:脚本代码,strScriptAreaName字符串形式的脚本区域名称。返回特定脚本区域内具有特定脚本代码的部队(组)单位数量。GetNUnitsInScriptGroupGetNUnitsInScriptGroup (iScriptID , iPlayer)iScriptID:脚本代码,iPlayer:玩家代码。返回特定脚本代码部队(组)的单位数量。玩家代码为备选项,(可以不设定)但比如部队组中包含炮兵单位,设置玩家代码参数就有用途。(如果炮手全部阵亡,火炮变为中立单位玩家代码2)。例: a = GetNUnitsInScriptGroup(102, 1);a=玩家1脚本代码为102的部队组单位数量。LandReinforcementLandReinforcement (iReinfID);iReinfID:增援组代码放出特定增援组代码的援军。(事先于地图编辑器设定)。WinWin (iParty);iParty:玩家方代码单人游戏中特定玩家方代码的玩家胜利。多人游戏中特定玩家方代码的玩家胜利,另一方自动得到已战败通知。DrawDraw ();多人游戏中,所有玩家获得平局。LooseLoose ();单人游戏中人类玩家失败。 GiveCommand, CmdGiveCommand (iAction, iScriptID , params, ;iAction:动作代码, iScriptID:脚本代码;params:参数。向特定脚本代码的部队发出特定动作代码(见上文)的指令。如有params参数,必须用逗号分隔。Cmd等同于GiveCommand。指令将立刻向单位发出。Example: GiveCommand (9, 1002);Cmd (3, 1001, 2756, 9678);本例小括号中后两项为参数。GiveQCommand, QCmdGiveQCommand (iAction, iScriptID , params, );向特定脚本代码的部队添加特定动作代码的指令行。如有params参数,必须用逗号分隔。QCmd等同于GiveQCommand。此函数可批量运行,但批量指令的第一个动作必须用Cmd函数添加以便立刻执行。Example: QCmd (3, 200, 1700, 2530); QCmd (3, 200, 1900, 2530);ShowActiveScriptsShowActiveScripts ();用于DEBUG的函数,调用可激活脚本列表。ChangeWarFogChangeWarFog (iParty);IParty:玩家代码;用于DEBUG的函数,调用特定玩家方的战雾。EnableAviationEnableAviation (iParty, iAviationType);IParty:玩家代码;iAviationType:航空兵类别代码。允许特定玩家方使用特定类别代码的空中支援。航空兵类别代码包括:0 侦察机1 战斗机2 伞兵机3 轰炸机4 攻击机-1 全部机种如果玩家方代码=-1,此函数对所有玩家生效。DisableAviationDisableAviation (iParty, iAviationType);IParty:玩家代码;iAviationType:航空兵类别代码。禁止特定玩家方使用特定类别代码的空中支援。航空兵类别代码包括:0 侦察机1 战斗机2 伞兵机3 轰炸机4 攻击机-1 全部机种如果玩家方代码=-1,此函数对所有玩家生效。(如果看了上面的函数,这个就不用看了,这两个函数功能正相反,记一个就成了。)ChangePlayerChangePlayer (iScriptID, iParty);IScriptID:脚本代码;iParty:玩家代码。将特定脚本代码部队的所有权转换给特定玩家方。举例: ChangePlayer (1000, 2); - 把脚本代码为100的单位给玩家2。God 大家不会陌生吧:)God (iParty, iMode);iMode:模式代码用于调试,模式包含: 0 彻底关闭上帝模式 1 无敌状态 2 无敌状态+一击必杀 3 一击必杀 4 关闭无敌状态 5 关闭一击必杀SetIGlobalVar, SetFGlobalVar, SetSGlobalVarSetIGlobalVar (strGlobalVarName, iVar);SetFGlobalVar (strGlobalVarName, fVar);SetSGlobalVar (strGlobalVarName, strVar);设定全局变量值。StrGlobalVarName全局变量名。Ivar:整数参数;fvar:浮点整数参数;strVar:字符串参数。SetIGlobalVar 使用整数参数。SetFGlobalVar 使用浮点数参数。SetSGlobalVar 使用字符串参数。 GetIGlobalVar, GetFGlobalVar, GetSGlobalVarGetIGlobalVar (strGlobalVarName, 0)GetFGlobalVar (strGlobalVarName, 0)GetSGlobalVar (strGlobalVarName, 0)返回全局变量值。参数特征同上。不同的是,参数为0。GetObjectHPsGetObjectHPs (iScriptID)IScriptID:脚本代码。回特定脚本代码物体的生命值。(不适用于单位!)GetNUnitsInPartyGetNUnitsInParty (iPlayer)返回特定玩家代码玩家的单位数量,步兵数量单独计算(一个步兵班=步兵班内士兵数量)。 GetNUnitsInPartyUFGetNUnitsInPartyUF (iParty)多人游戏:返回特定玩家方的单位数量。步兵按班数计算。(一个步兵班=一个单位)。 GetNUnitsInPlayerUFGetNUnitsInPlayerUF (iPlayer)多人游戏:返回特定玩家代码玩家的单位数量。步兵按班数计算。(一个步兵班=一个单位)。ChangeFormationChangeFormation (iScriptID, iFormation);iFormation:队形代码; iScriptID:脚本代码。转换特定脚本代码步兵班的队形。TraceTrace (strText , params, ;用于调试。StrText:文本字符串;Params:参数。可在控制台中调用具有格式的文本字符串。浮点变量可用于参数。举例: Trace (I have %g apples of total %g, 2, 3);DisplayTraceDisplayTrace (strText , params, ;用于调试以及在屏幕上显示说明文本。参数同上。举例: DisplayTrace (I have %g apples of total %g, 2, 3);ObjectiveChangedObjectiveChanged (iObjNum, iState);iObjNum:目标代码iState:目标状态代码将特定代码的目标转换到特定代码的状态。状态代码包括: 0 收到目标 1 完成目标 2 目标失败GetNAmmoGetNAmmo (iScriptID) IScriptID:脚本代码。通过列表返回特定脚本代码单位的弹药量。举例:primary_ammo, secondary_ammo = GetNAmmo (1000)。GetPartyOfUnitsGetPartyOfUnits (iScriptID)返回特定脚本代码单位拥有者的代码数字。DamageObjectDamageObject (iScriptID, fDamage);对特定脚本代码的物体或单位造成损伤参数的损伤。如果损伤参数=0,物体(单位)被彻底摧毁,如果损伤参数为负数,则物体(单位不可)会被修复。GetUnitStateGetUnitState (iScriptID)返回特定脚本代码单位的当前状态。(当前指令)如果返回值=-1,表明单位不存在或者它是非单位物体。如果返回0,状态为未知。GetSquadInfoGetSquadInfo (iScriptID)返回特定脚本代码步兵班的当前队形。如果返回-3,表明步兵班不存在。如果返回-2,表明它不是步兵班。如果返回-1,表明步兵班已被解散。 IsFollowing如果返回1,表明单位正在跟随另一单位。如果返回0,表明单位不在跟随任何单位。如果返回-1,表明单位不存在,或为非单位物体。GetFrontDirGetFrontDir (iScriptID)返回单位的当前方向。(范围0-65535,可通过换算得到0-360度)如果返回-1,表明单位不存在或者为非单位物体。举例: angle = GetFrontDir (1100) / 65536 * 360;GetActiveShellTypeGetActiveShellType (iScriptID)返回当前火炮弹药类型。RandomFloatRandomFloat ()随机返回0到1.00范围内的浮点数值。RandomIntRandomInt (n)随机返回0到n-1的范围之间整数值。GetMapSizeGetMapSize ()返回地图尺寸,单位为SCRIPT POINT举例: sizex, sizey = GetMapSize();IsPlayerPresentIsPlayerPresent (iPlayer)多人游戏:返回1则玩家存在,返回0玩家不存在。GetObjCoordGetObjCoord (iScriptID)返回特定脚本代码物体或单位的坐标。(单位SCRIPT POINT)如果返回(-1,-1)表明物体不存在。举例: x, y = GetObjCoord (2002);GetScriptAreaParamsGetScriptAreaParams (strScriptAreaName)StrScriptAreaName:字符串格式的脚本区域名称。返回脚本区域参数。矩形区域返回中心点坐标与尺寸(长与宽的一半)。圆形区域返回圆心坐标(x,y)与半径。举例: x, y, half-length, half-width = GetScriptAreaParams (Zone1); x, y, radius = GetScriptAreaParams (Zone2);SwitchWeatherSwitchWeather
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文言文主观题真题及答案
- 事业单位考试面试题及答案
- 2025年三控模拟试卷及答案
- 2025年一级建造师考试真题及答案
- 河北国考近年真题及答案
- 2025年基本公共卫生服务项目考试题库及参考答案
- 2025年城管队员笔试试题及答案
- 2025年非高危主要负责人及安管人管理知识考试题库(附含答案)
- 植物染料创新创业项目商业计划书
- 工业设备维修外包服务创新创业项目商业计划书
- 村干部饮水安全培训总结课件
- 安全生产治本攻坚三年行动半年工作总结
- 单招备考科学方案
- 医美咨询培训课件
- 海船船员适任 评估规范(2024)轮机专业
- DB50-T 1463.2-2023 牛羊布鲁氏菌病防控技术规范 第2部分:人员防护
- NoSQL数据库应用与实践 课件 第1-6章 认识NoSQL - 增删改查
- 《工程勘察设计收费标准》(2002年修订本)
- 大学食堂装饰装修方案
- 工资结清证明(模板)
- 矿山档案(台帐) 表格参照模板参考范本
评论
0/150
提交评论