网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月14日
漏签
0
天
武装突袭3吧
关注:
45,233
贴子:
307,891
看贴
图片
吧主推荐
玩乐
1
2
下一页
尾页
25
回复贴,共
2
页
,跳到
页
确定
<返回武装突袭3吧
>0< 加载中...
任务编辑玩转游戏脚本 从入门到精通全篇基础教程
只看楼主
收藏
回复
七龙MC
小吧主
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
SQF就是StatusQuoFunction的缩写,是SQS(StatusQuoScript)升级版,所有懂的编辑任务的人都知道脚本对于武装突袭3的重要性,脚本可用控制游戏场景的任何事物,例如:游戏逻辑,触发器,建筑物,AI,武器,载具等。从闪点行动起脚本就分为SQS和SQF,进入武装突袭3后SQF的优势直接大于SQS,为什么这么说?因为SQF的文件执行效率比SQS更快,可以保证游戏运行脚本的效率,比SQS更加架构化,比SQS更加易懂,SQF脚本就占据了SQS脚本的主导地位。
送TA礼物
IP属地:河南
1楼
2019-06-24 17:30
回复
七龙MC
小吧主
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
第一节 : 了解任务的事件脚本 init.sqf
什么叫事件 不懂百度
我们来说一下,首先由我们在任务编辑器中创建的任务分为2种,第一种
则是 单人任务,第二种则为多人任务
初始任务保存后得到文件名.岛屿名 的任务名称
里面会包含mission.sqm文件,这个文件包含你在任务中放置的全部对象
该文件会被玩家和服务器读取
下面为大家介绍事件脚本(默认是没有这个文件的需要自己创建):
首先我们在任务创建一个名为init.sqf 的脚本文件
这个事件脚本的用处非常大 它会在你的任务开始时(在简报屏幕之前)执行脚本内容
例如我们想编译某个脚本以供调用,则可以将文件写入在init,例如
call compile preprocessFile "elstp.sqf";
或者想让进入的玩家显示hello world 可以写入
hint "hello world";(不推荐,建议写入在玩家本地事件 后面讲到)
并且,该文件的执行不会被错误代码阻止,也就是说你在里面写的脚本发生错误并不会中断运行
而使用waitUntil 函数可以实现等待(后面讲解)如果你在里面写大规模的sqf脚本推荐使用 spawn函数(后面讲解)
总结:该文件是一个任务的基础初始化文件,并且会在任何客户端上执行。它会在你的任务开始时(在简报屏幕之前)执行脚本内容
IP属地:河南
4楼
2019-06-24 17:35
回复
收起回复
为你推荐
今日新服火爆开启,手游带你领略不一样的游戏体验!复古单职业,自由交易无限制,跨服攻城激情四溢!
2024-05-14 12:15
广告
立即查看
KD-boy
中尉
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
顶
来自
iPhone客户端
5楼
2019-06-24 17:46
回复
收起回复
七龙MC
小吧主
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
第二节 : 了解任务的事件脚本 exit.sqf与onPlayerKilled.sqf
exit.sqf
作用:任务结束时(在汇报屏幕之前)执行
onPlayerKilled.sqf
作用:当玩家在单人游戏或多人游戏中被杀时执行
例如在其中写入:hint "你被杀死了!"; 当玩家死亡时将提示给玩家
IP属地:河南
6楼
2019-06-24 18:01
回复
收起回复
七龙MC
小吧主
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
第三节 : 了解任务的事件脚本 initServer.sqf 与 initPlayerServer.sqf
initServer.sqf 这个脚本作用就大了,但是貌似只能在多人上执行,单人貌似没啥用
他负责在任务开始时仅在服务器上执行。如果你想某些东西不想让客户端去处理。建议写在
这个里面,比如初始化某些脚本。
initPlayerServer.sqf
当玩家加入任务时仅在服务器上执行
此脚本依赖于BIS_fnc_execVM和remoteExec(远程执行)。如果CfgRemoteExec的类函数设置为mode = 0或1,则永远不会执行该脚本。不推荐使用
IP属地:河南
7楼
2019-06-24 18:05
回复
收起回复
七龙MC
小吧主
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
第四节 : 了解任务的事件脚本 initPlayerLocal.sqf 与 onPlayerKilled.sqf
initPlayerLocal.sqf 这个经常用到 他将在玩家在单人游戏或多人游戏中被执行。
例如你想给一个玩家进入任务后提示一句欢迎你来到服务器可以在里面写入
hint "欢迎来到服务器"; 并且在这里执行的脚本有一个固定的对象 那就是 player
所以你可以在这里处理很多,例如给玩家添加按钮 ,给玩家添加事件,都可以。他不会被全局执行。
仅在单个客户机上执行脚本。意思就是说如果执行这个脚本按道理来说全部玩家都会提示,但是在这里
仅对但个玩家提示,也就是进入服务器的人提示。
onPlayerKilled.sqf
当玩家在多人游戏任务中重生时,在本地执行。如果respawnOnStart为0或1,则此事件脚本也将在任务开始时触发,oldUnit将在此实例中为objNull。如果respawnOnStart等于-1,则此任务开始时不会触发此脚本。
这个脚本则是当玩家重生的时候会执行,比如你在 initPlayerLocal.sqf 给玩家添加按钮 player addAction
这会发现当玩家死亡,对象会丢失,也就是说玩家复活后会移除按钮,这时候想简单处理则可以在玩家复活的时候重新添加按钮!
IP属地:河南
9楼
2019-06-24 18:13
回复
收起回复
七龙MC
小吧主
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
第二章 任务全局设置Description.ext
一般自己在编辑器保存是不会带这个文件的,需要自己新建
里面涵盖的东西非常多,这里只说常用
定义任务头:
你的任务在多人列表刷出来显示的任务的类型(引用官方例子)
class Header {
gameType = CTF ; //游戏类型
minPlayers = 1 ; //任务支持的最小玩家数量
maxPlayers = 10 ; //任务支持的最大玩家数量
};
任务选择菜单中显示任务名称。
briefingName = "xxx" ;
定义任务载入时的名称(可以使用html代码变换颜色)
onLoadMission="xxx任务"
在加载简介时显示消息
onLoadIntro="你好";
任务载具时显示的图片(需要使用armatools工具转换格式)
loadScreen = "pictures \ intro.paa";
任务的作者
author = "xxx";
由于参数过多,更多参数请参阅官方文档
IP属地:河南
11楼
2019-06-24 18:21
回复
收起回复
七龙MC
小吧主
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
SQF 基础语法: 第一节 认识变量 声明变量
变量是编程中常见的,在其它编程语言中,变量的声明有很大规范性,例如java使用 int num = 10;
而在sqf中,局部变量者使用 下划线来声明 例如
_num = 10; 如果没有下划线,则视为全局变量
通过简单的计算
_num = _num + 20
打印输出
systemChat 这是在屏幕左下角打印文字, str 的意思很明确,则是转换为字符串
systemChat str _num
由此可见 游戏中会输出 : 30
例如声明一个变量打印玩家名字
_playerName = name palyer;
systemChat _playerName ;
则会输出玩家名称.
SQF还允许数组
SQF没有java以及其他语言那样明确的类型,所以它是属于游戏脚本语言,
如果你声明的变量 = " " 则是字符串,如果[] 则是 数组
类似于 JavaScript中的用 var 声明的变量
IP属地:河南
12楼
2019-06-24 18:31
回复
收起回复
notk
少将
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
不够通俗
IP属地:广东
来自
iPhone客户端
13楼
2019-06-25 01:09
回复
收起回复
只是个人偶
下士
3
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这种技术帖必须顶啊!
IP属地:北京
14楼
2019-06-28 01:32
回复
收起回复
七龙MC
小吧主
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
if 判断函数的应用
if字面意思就能知道,如果
if是用来判断一个对象或地址,他返回 Boolean ,易语言叫 逻辑型
boolean只有两种状态 ,true/真 false/假
默认如果是true则会执行
例如
_a = true;
if (_a) then {hint "你好!"}
或
_b = 10;
if(_b >= 10) then {xxxxx} else{BBBBB}
代码解释:声明变量b等于10; 如果变量 b大于10 着运行 xxx中的代码块,当条件不成立着运行BBBBB的代码块
代码块指的是 {这里被括起来的的代码}
IP属地:河南
16楼
2019-06-28 20:25
回复
收起回复
V绝望的红领巾
上士
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
大佬,想请问下有没有做地图的工具啊,就是自己做一个全新的地形
IP属地:陕西
来自
iPhone客户端
20楼
2019-06-28 23:04
回复
收起回复
ArvinTheAlien
军士长
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
感谢/
来自
Android客户端
21楼
2019-06-29 09:58
回复
收起回复
七龙MC
小吧主
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
逻辑运算符的应用
普通的加减乘除等于就不说了
!= 不等于
例如
_a = 1 ;
_b =2;
if (_a != _b) then {xxxx}
代码解释 如果a不等于b则运行
IP属地:河南
22楼
2019-06-29 15:13
回复
收起回复
七龙MC
小吧主
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
取百分比
_A % _B
== 绝对等于
一个 等于 是赋值, 两个等于则是比较
_a = 1;
_b = 1;
if (_a == _b) then {XXXX}
解释:a等于b则执行XXXX代码
IP属地:河南
23楼
2019-06-29 15:13
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
不等式秒了
2794500
2
你来打分!谁去歌手2024能乱杀
2566326
3
我发世界赛爆冷名场面,你来打分
2459016
4
《诛仙》修订版大幅削弱碧瑶
2392740
5
孙颖莎陈梦出战奥运女单
2264002
6
《怪兽8号》评价为何如此之低?
2152250
7
《绝区零》回应开发资料遭泄露
1521288
8
老头杯多人OUT
1292968
9
iOS17.5正式版值得更新吗
1104246
10
《刺客信条:影》正式公开
1043889
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示