Project1

标题: 【更新&精简】FSL(自由脚本协议) FAQ -- 疑问回答贴 [打印本页]

作者: DeathKing    时间: 2010-7-18 14:06
标题: 【更新&精简】FSL(自由脚本协议) FAQ -- 疑问回答贴
本帖最后由 DeathKing 于 2010-10-10 13:23 编辑
Q: FSL是什么?可以吃么?
A: FSL是自由脚本协议,是用于解决脚本的使用、编写、版权等问题的一个规范。执行还是靠大家的自觉。请注意,FSL只是一个协议,脚本中的注释只是发布格式!


Q: FSL的思想是什么?
A: 自由:任何人都有使用、传播、修改、二次发行的权利。互助:程序员一同帮助开发、优化脚本。著佐权:不用担心版权的问题,你可以在协议的规定下自由使用!

Q: 我必须使用FSL的发布格式吗?
A: 不是的,我们完全尊重脚本作者的自由。FSL的发布格式有助于提供完整的脚本信息,帮助一个高效的脚本库的建成。可喜的是,现在已经有软件可以快速生成FSL脚本注释,你也可以直接从一个模板上修改。


Q: 如何来管理版本?
A: FSL采用的是GNU风格的版本控制,一个很简单的例子如1.1.0718,更新时间building将会置于末位。请参见这个链接的GNU风格相关条目:http://www.cnblogs.com/sdjxcolin/archive/2007/07/02/803376.html

Q: 我能将我Hack或者Crack的脚本遵循FSL么?
A: 不能。FSL规定只允许脚本原作者决定是否遵循FSL。


Q: 我必须使用alias么?
A: alias可以很有效的避免出错的状况,我们推荐你使用,但是如果遇到了只能重新定义默认方法的时候,你一定要在注释中说明清楚。

Q: 我能在游戏里混合使用FSL脚本和非FSL脚本么?
A: 当然可以,但是FSL脚本不会影响到非FSL脚本么,并列要列出使用的FSL脚本。


Q: 我可以索要报酬么?
A: 我们完全尊重原作者的知识产权,你可以索要报酬,但是我们鼓励贡献的行为,我们更喜欢不索要报酬!


附表-A 脚本注释的模板
  1. #===============================================================================
  2. # ■ 脚本中文名字
  3. #    脚本英文名字
  4. #-------------------------------------------------------------------------------
  5. #    脚本说明及使用方法
  6. #   
  7. #-------------------------------------------------------------------------------
  8. #    更新作者: 更新作者,第一位为原作者,依更新时间排序,最先更新最前
  9. #    许可协议: FSL (如果有附加选项,请加上附加选项,如DOS,需要其他脚本,参考:http://wiki.fs-gpl.tk/wiki/%E9%A6%96%E9%A1%B5)
  10. #    项目版本: 版本号,格式为:主.次.building(如1.1.0714)
  11. #    引用网址: 脚本发布帖网址等(用于获取最新的脚本)
  12. #-------------------------------------------------------------------------------
  13. #    - 1.1.0714   By 更新者
  14. #      * 更新类容;
  15. #
  16. #===============================================================================
  17. $fscript = {} if $fscript == nil
  18. $fscript["脚本英文名字,消去单词间的空格"] = "主.次.building(如1.1.0714)"

  19. #-------------------------------------------------------------------------------
  20. # ▼ 通用配置模块
  21. #-------------------------------------------------------------------------------
  22. module FSL
  23.   module 脚本英文名称
  24.   end
  25. end
复制代码

作者: 小宝宝    时间: 2010-7-18 14:14
都不知道说什么.... 沙发沙发~
作者: 越前リョーマ    时间: 2010-7-18 15:09
下面那些脚本内容是干嘛的……
作者: IamI    时间: 2010-7-18 15:23
写WM直接继承重载的群众路过
作者: david50407    时间: 2010-7-18 15:24
表示支持FSL的概念

作者: 神思    时间: 2010-7-18 15:40
呵呵,咱支持你,改天用下这个规范。
作者: 小幽的马甲    时间: 2010-7-18 21:43
我觉得注释里还应该把可能导致冲突的方法给写出来……
作者: DeathKing    时间: 2010-7-18 23:44
我觉得注释里还应该把可能导致冲突的方法给写出来……
小幽的马甲 发表于 2010-7-18 21:43



是的,这个被放在了说明里面。尤其是直接重构的方法(是在无法alias的方法),必须要在注释中声明。


作者: 紫苏    时间: 2010-7-19 09:13
等我空下来便把之前弄的独立脚本改成 FSL 发布 XD
作者: 沉影不器    时间: 2010-7-26 23:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: DeathKing    时间: 2010-7-27 09:26
回复 沉影不器 的帖子


    其实发布规范不是必须的,因为那个是为我们后面可能建立的一个脚本库服务;

配置模块其实和前辈很多脚本都有异曲同工之妙,是吧一些常量或是变量存放在模块中,只不过解析作用域会有点麻烦。

协议的全文在这里:http://rpg.blue/upload_program/goods/fsl.htm  的确,现在没有找到十分完美的兼容性解决方案,我们希望通过后面的经验来填补这个不足,也希望大家能够讨论出点主意。 $imported 学习了KGC系列脚本和PocketWiki上面的脚本的做法,我还专门翻译了一篇Pocketwiki上的一篇文章:What's $impoted and how it does。

$imported我也想了很多,因为脚本是会有更新的,我们不能想象他是一成不变的,或许脚本更新后就不会有原来的问题了。但是似乎本质是一样的,所以我现在就在纠结这个,希望在和其他人的讨论中最后能有答案。

版权方面,的确如GNU的GPL一样将其弱化了,最初的目的就是自由和共享,这样可以开发出健壮的脚本。

谢谢前辈的意见,很中肯。
作者: summer92    时间: 2010-7-27 10:19
FSL有没有使用手册?
作者: 沉影不器    时间: 2010-7-29 21:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灼眼的夏娜    时间: 2010-7-29 22:02
表示准备让davy直接在RGE2脚本编辑器中添加FSL模板
作者: 灼眼的夏娜    时间: 2010-7-29 22:14
准备在RGE库中引入FSL协议~ 不过目前感觉还有一些需要补充的地方。。恩~
作者: 九夜神尊    时间: 2010-7-30 10:06
有意,不过有两点问题
1:FSL是啥子的缩写
2:使用 =being     =end  咋老是出错呢
作者: DeathKing    时间: 2010-7-30 10:09
回复 九夜神尊 的帖子

FSL= Free Script Lincense,自由脚本协议
=beign/=end要顶格书写,否则会出错。
   
作者: DeathKing    时间: 2010-7-30 10:23
回复 沉影不器 的帖子


    的确,或许现在有些复杂。许可协议考虑到是否会有附加条款,比如附加条款-NOS(Need Other Script)就代表需要其他脚本的支持;项目分类的出发点是为了区分VX和XP的脚本,因为我不是很赞成要写一份XP、VX都可用的脚本,这样会很难以维护;衍生关系意在指明一个二次发行的脚本是由那个脚本二次发行的。

现在看来,的确有些复杂,所以决定精简。

$imported方面,考虑到或许会向pocketwiki方面推广FSL,所以最后也可能会采取$imported

配置嵌套也完全可以取消,之前那样做我觉得只是出于形式罢了,FSL_XXX也同样可以体现之前的形式!
作者: 紫苏    时间: 2010-7-31 08:04
最后配置模块可否去掉嵌套?统一前缀或后缀看起来结构更简单,如FSL_xxxx之类
沉影不器 发表于 2010-7-29 21:48


使用命名空间的机制还是有意义的,如果单纯地在每个符号前加上 FSL_ 前缀,那会增加命名时的工作量,而且个人感觉这样代码看起来也不太美观,会让各种域显得过于散乱
实际上在不包含一个 Module 时,前缀仍然是统一的(即 FSL::xxxx),区别只是在于下划线和两个引号的外观不同
作者: DeathKing    时间: 2010-8-13 19:08
干掉了一些不必要的格式:
衍生关系,创建、更新时间,项目分类

这些都交给后面的发布系统吧!
作者: 沉影不器    时间: 2010-8-14 10:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: DeathKing    时间: 2010-8-14 11:19
回复 沉影不器 的帖子


    恩,会根据后面的经验的,命名空间算一个,不过目前正在摆脱davy写一个在线多人协作系统。

也就是脚本发布、体检BUG或Patch的系统。

或许后面还会干掉一些多余信息。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1