找回密码
 点一下
查看: 1041|回复: 4

对Galaxy代码的若干疑问

[复制链接]
发表于 2015-4-11 19:51:00 | 显示全部楼层 |阅读模式
我也是在GA坟了许久的万年水民,上次发帖估计都是12年了...:D这回开始钻研Galaxy,想把war3时代用WE写的系统代码转写成Galaxy,不过因为对Galaxy了解不足——虽然看了教程,也搜集了Ga里面有关的资料,搜索了一圈信息也不多,
最后我需要的东西还是没找到——
所以就发个提问帖,向GA里面在这方面有研究和经验的前辈们请教一二,感觉 头目·@麦德三世 一定能为我指点迷津.
还麻烦有心的诸位帮忙答疑解惑,在此不甚感激.


问题就是这样的:
1.在Galaxy教程里面提到结构体只能定义但无法传参,不知道能不能用指针替代结构体作为参数在函数之间进行传递?
2.Galaxy能不能进行类似于C++核心库基于C一样的二次脚本开发编译,比如定制新的语法和规则?
   因为我有个想法,如果Galaxy不能做到1,想用类似jass中利用整数数组划分的方式重写一个Galaxy下的zinc,这样用数组模拟结构体,不用Galaxy的鸡肋.
   但是如果这么做肯定要定义新的语法,所以如果能这么做,应该怎么做(目前GA里面似乎没看到过关于用Galaxy定义二次脚本语言的资料)?这么做值不值?又有没有什么更好的办法?


本来对Galaxy挺期待的,但是看到它蛋疼的限制之后热情真的是被消磨了一大半,既然都有了结构体居然中看不中用.
说起来做个自己的RPG肯定是先写底层库来当mod好省时省力的,结构体肯定是重头戏(我玩WE的时候差不多所有库都"伪对象化"了).
所以肿么办么...
难道咱用SCII复刻War3黑科技装备系统的愿望就要泡汤了么....?

顺便求知情人士给点国外SCII技术论坛传送门,hive毕竟是war3为主,wc3c似乎的确已经死了好几年了...

以上,谢谢~

发表于 2015-4-11 20:02:16 | 显示全部楼层
建议不要在有限的语法里折腾那么多。
老老实实自己写个代码生成,然后写lua,生成galaxy。

点评

这样说我还是,干脆去做一个类似war3里面扩展脚本的编译器好了.... 于是可以在Galaxy里面写自己的脚本,保存地图的时候加载编译器把写进去的转写成Galaxy,于是就跟war3jasshelper一样...? 但那种东西我还真不会...  详情 回复 发表于 2015-4-11 20:12
回复

使用道具 举报

 楼主| 发表于 2015-4-11 20:12:10 | 显示全部楼层
thewisp 发表于 2015-4-11 20:02
建议不要在有限的语法里折腾那么多。
老老实实自己写个代码生成,然后写lua,生成galaxy。

这样说我还是,干脆去做一个类似war3里面扩展脚本的编译器好了....
于是可以在Galaxy里面写自己的脚本,保存地图的时候加载编译器把写进去的转写成Galaxy,于是就跟war3jasshelper一样...?
但那种东西我还真不会...
同意你的建议,尽可能少折腾.
但是总感觉被Galaxy蛋疼的设定逼得要折腾一下啊...

想请教一下你是怎么解决这问题的..
回复

使用道具 举报

发表于 2015-4-11 21:17:09 | 显示全部楼层
1.5补丁以后加入了引用这个东西,可以用它来传递结构体
http://bbs.islga.org/read-htm-tid-1034938-page-1-fpage-1.html


不过文中提到的把结构体引用塞进全局数组的bug已经被修正了,所以那个部分没法用了。

点评

看了头目的帖子,这个改动解决很多问题了. 虽然有些多余还是问一下好了, 虽然不能返回结构体,不过用返回字符键值替代结构体返回再从DataTable里面提取这应该是没问题的?  详情 回复 发表于 2015-4-11 22:20
回复

使用道具 举报

 楼主| 发表于 2015-4-11 22:20:25 | 显示全部楼层
麦德三世 发表于 2015-4-11 21:17
1.5补丁以后加入了引用这个东西,可以用它来传递结构体
http://bbs.islga.org/read-htm-tid-1034938-page- ...

看了头目的帖子,这个改动解决很多问题了.
虽然有些多余还是问一下好了,
虽然不能返回结构体,不过用返回字符键值替代结构体返回再从DataTable里面提取,这应该是没问题的?于是还是能把结构体传来传去的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-24 02:41 , Processed in 0.189384 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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