中国虚拟军事网(VME)- 专注于武装突袭系列虚拟军事游戏

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
查看: 3805|回复: 23

关于C++语法与ARMA脚本语法的不同之处的不解

[复制链接]
发表于 2016-1-20 14:26:06 | 显示全部楼层 |阅读模式
在 C++中循环语句是先DO后WHILE而在ARMA中则是先WHILE后DO,而在判断语句IF中在C++中是没有THEN 这个关键字的但在ARMA脚本 中却要这个THEN,我有点弄不明白。
 楼主| 发表于 2016-1-20 14:31:39 | 显示全部楼层
更令人郁闷的是在官网的那些脚本关键语句不知它是什么意思,能起到什么样的功能或效果,不然我想编一些脚本就更能方便多了
发表于 2016-1-20 18:11:05 | 显示全部楼层
C++ 里面的while 就是while do 的意思。c++里while(条件){ 行动 }就相当于 脚本的 while 条件 do 行动

Then就是个协助语法,用来让语言更接近英语。
比如VB的if xxx then xxx endif 就跟c++ if(xxx){ xxx} 一样。理解为大括弧开始就行了
发表于 2016-1-20 23:37:24 | 显示全部楼层
咳,C++是(半)强类型静态编译语言,SQF是弱类型动态解释语言。
比较这两者的语法,就好像拿英语和俄语比一样,徒增烦恼。
还不如各学各的,掌握得快呢。
 楼主| 发表于 2016-1-20 23:43:07 | 显示全部楼层
gpgpgpgp 发表于 2016-1-20 23:37
咳,C++是(半)强类型静态编译语言,SQF是弱类型动态解释语言。
比较这两者的语法,就好像拿英语和俄语比一 ...

那意思我现在在学C++是在做无用功吗?
发表于 2016-1-21 00:38:51 | 显示全部楼层
曾经沧海 发表于 2016-1-20 23:43
那意思我现在在学C++是在做无用功吗?

一般学一个语言就是专门为那个语言用的,你学一门语言为了是利用另外一门语言是有点奇葩。
但是编程语言基本是相通的。特别是SQS跟SQF其实很多语法特征是类C风格的,C++也是类C语言。有帮助是肯定的。

通常编程语言之间没有英语俄语那么大区别,我学完C++,看C#甚至VB都没有问题。当然了看懂别的语言没问题,如过去写就有可能出现很多语法错误。
发表于 2016-1-21 15:15:33 | 显示全部楼层
意思就是:学C++的时候不要想着SQF。学SQF的时候装作自己没看过C++。
这样会更容易。
 楼主| 发表于 2016-1-21 16:25:21 | 显示全部楼层
gpgpgpgp 发表于 2016-1-21 15:15
意思就是:学C++的时候不要想着SQF。学SQF的时候装作自己没看过C++。
这样会更容易。

兄弟啊,我学C++本意就是想学会ARMA脚本编写来啊,不然我学它作什么,听你上次那么一说犹如一盆冷水从头淋到脚啊,本来这维基官网上的各种功 能的关键语句它列举的格式语法以及范例绝大部分只有一点点,如果说在初始栏,执行栏,条件栏里输入那么一至两条还好说,成功率比较高,但是要在游戏外另写脚本特别是几条几十条脚本语句编写在一起时这难度就非常大了
 楼主| 发表于 2016-1-21 16:38:02 | 显示全部楼层
我现在就是拆了好多人的脚本来看,有一部分能理解是什么意思也明白他的当时的思路,但是却有好多特别是有一些莫名其 妙的符号不知是起什么作用的,这些部分的思路又是怎么样的,还有当一个功能的脚本或多个功能的脚本写好后有好多又不知道要如何调用它究竟是要在本脚本中调用呢还是要在触发器呢还是初始栏又或者是路径栏调用,这又是我的一个短板,如果是写的INIT还好说直接一进游戏就会调用这个初始外部脚本,像那种把多个脚本串联起来调用就很难了
发表于 2016-1-21 20:49:12 | 显示全部楼层
想把官方维基百科的脚本关键字所有的都学好用好我觉得不太可能,除非你是专门天天写脚本为其开发的,我是用到就学看到新奇有可能需要就记这样慢慢积累不就会用了吗
发表于 2016-1-21 21:00:09 | 显示全部楼层
本帖最后由 啤酒冲米二 于 2016-1-21 21:01 编辑
曾经沧海 发表于 2016-1-21 16:38
我现在就是拆了好多人的脚本来看,有一部分能理解是什么意思也明白他的当时的思路,但是却有好多特别是有一 ...


这个没什么难啊,比如a={hint str _this}; 1 call a;功能代码语段中只传递一个变量可以怎么写,如果用中括号[1,2,3]即数组作为参数传递就要注意顺序把3个参数都选择出来_x1=_this select 0;_x2=_this select 1;_x3=_this select 2;第一个从0开始
发表于 2016-1-22 04:27:14 | 显示全部楼层
曾经沧海 发表于 2016-1-21 16:25
兄弟啊,我学C++本意就是想学会ARMA脚本编写来啊,不然我学它作什么,听你上次那么一说犹如一盆冷水从头 ...

那你等于是通过学习一个非常复杂且强大的语言,来帮助你理解一个相对简单的语言。

不过对于游戏mod来说,不懂编程是有瓶颈,因为很多脚本教程是假设接触的人有编程背景的。

这样吧,我建议你玩玩Javascript,这个语言比较轻量,也特别容易运行。很多教程直接让你在页面上学。
不需要弄得特别精通。明白if else,明白循环,明白顺序逻辑和并发之类的就可以了。

或者如过要学,学学Java或者C#,VB。C++相对难度太大而且也太过于强大了。
发表于 2016-1-22 08:46:13 来自手机 | 显示全部楼层
cycle6 发表于 2016-1-22 04:27
那你等于是通过学习一个非常复杂且强大的语言,来帮助你理解一个相对简单的语言。

不过对于游戏mod来 ...

JS是个好东西
发表于 2016-1-22 11:38:27 | 显示全部楼层
如果非得说两者相通,那么就是思维,概括就是三点:“选择”,“顺序”,“循环”。
发表于 2016-1-22 12:06:25 | 显示全部楼层
qevhytpl 发表于 2016-1-22 11:38
如果非得说两者相通,那么就是思维,概括就是三点:“选择”,“顺序”,“循环”。


我觉得游戏脚本还要考虑一个并发。就像他之前问一个问题,用单纯的顺序和选择都会理解为用if语句,只有考虑到跟游戏所处时间环境的并发因素,才能明白应该用waitUntil
不过遗憾的是JS本身不支持多线程。╮(╯▽╰)╭

点评

waituntil确实是一个很好的并发诠释  发表于 2016-1-22 17:23
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-4-20 06:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表