• 本站为了您愉快的极速浏览开启了缓存功能,您的评论不会在第一时间显示并刷新,敬请谅解!若有疑问可在节假日QQ咨询站长!
  • 来到MC服主网必看原创文章集锦,务必要看——本站必看集锦目录
  • MC服主网已经完成备案开始正式运营,欢迎各位服主积极投稿哦~投稿一经采用奖励丰厚!发送你的稿件到吧!
  • 站长与您一起打造全中国最全面的我的世界服务器服主博客!网站内容建设中,欢迎订阅以获取关于MC的最新资讯!
  • 访问本站最好使用Chrome等现代化浏览器以获取最佳浏览效果,本站教程大部分为优质图文教程,欢迎来百度口碑点评我哦!
  • 支持站长?全站广告欢迎点击~需要帮助?QQ联系站长~赞助本站?点我赞助~

[全版本]想写插件却不会Java? 利用Skript脚本插件亲手打造属于自己的MC服务器插件

必装插件 mcfuzhu 1362次浏览 已收录 6个评论 扫描二维码

看着别人服务器里高端大气上档次的定制插件,在看完这篇教程之前你除了感叹道“这服真有钱”之外似乎做不了什么,看完这篇教程之后若有所思的你可能可以自己动手来写插件啦!

大部分服主的时间不足以让他们系统地学习整个Java语言,不过服主们若是以后有兴趣在工作中写程序,现在接触一下Java也未尝不可。游戏园的这篇文章可能会对你有点小启发:点击传送

当然,这篇文章是给那些不准备学习Java但也想做出自己插件的服主们看的。你会想了:我要是真的做出强大的插件了,那些学Java的不没饭吃了? 

这就是大部分人走入的误区——易语言简单吗?说实话就是中文版的VB程序,实现的功能也不少,但C语言、Java死了吗?并没有。在程序开发语言方面,性能是很重要的。而在实现简单的功能时,在如今配置不那么菜的机器上,性能的影响微乎其微。但在制作大型工程时,性能又是不得不考虑的一个方面。

这篇文章给出的例子只是抛砖引玉,实际功能靠你自己去开发,官方论坛里有很多像你我一样的服主,大家可以互相讨论交流。如果你是个土豪服主大可不费力气来学习这篇教程,定制插件是你更好的选择。不过,如果开服过程不学习知识而只是一味地收取赞助,这个服开的也没有什么意思。

永远不要怀疑自己的能力,配合适当的教程做出Ess这类插件是毫无问题。

Skript简介

skript脚本插件功能非常强大,可以写出如essentials这样复杂强大的插件。而不需要学习java知识。
您可以轻松地创建复杂的自定义命令,在特定条件下执行效果的触发器,以及只需运行周期性的脚本,所有这些都不需要知道任何关于编程的一点点知识,你只需学习一点点skript脚本编写的方法。
如果结合其他支持skript的插件,功能强大不敢想象。
英语水平较高的可以直接阅读官方新手教程,毕竟站长写的可能有点生硬:http://njol.ch/projects/skript/tutorial/

准备

你需要安装多个jar插件,功能类似于API。如果你的服务器使用这些插件报错,可以到Bukkit下载适合你服务器的版本。

Skript.jar为主插件,想实现基础功能安装这个就可以,但为了实现更高级的功能建议将文件夹的jar全部安装。

Skript 1.8-1.10所需文件打包下载:文件下载

这里需要提醒的是,以2.1.2版本为例,当你安装官网的skript时,首次运行插件,插件会自动为你的服务器装上14个作者编写的sk脚本。
这14个功能大部分是用不到的,要根据服主需求安装。
因此,在第一次运行插件后,立即关闭服务器,打开插件目录下Skript中的scripts文件夹,备份所有文件后将scripts内的文件全部删除,备份的文件可以等你了解skript后再使用。

当然,你如果是在我站网盘里下的,不会出现这个问题。

简单的编写步骤

类似于VB与易语言,skript也是由事件触发。

写一个插件非常简单,你只需按照:
event → condition(s) → effect(s) 即 事件 → 条件 → 效果,这样的步骤即可。


编写时注意,sk脚本的编写对语法要求与yaml一样严格,例如下面的示例代码直接复制是无法使用的,条件语句每个冒号的下一行需要缩进排版,这一点与yaml完全不同。编写时请备好服务器与后台日志来测试编写的脚本是否能正常工作。

有关事件的类型,可前往:http://njol.ch/projects/skript/doc/events/

on mine of stone: #事件及其条件
send "You just mined stone!" to player #效果

上面这段示例代码能让玩家在挖石头的时候收到一条消息:“你刚刚挖了石头!”。看上去好像并没有什么X用。

  options:

 MS: &4[公告]

 MS1: &c&l欢迎加入MC服主网测试服务器-点击显示更多

 MS1.1: &2&l======公告系统======

 MS1.2: &5&lMC服主网官网:mcfuzhu.net

 MS1.3: &3&l输入/help获取帮助

 MS1.4: &6&l官方QQ群: xxxxxxx

 MS1.5: &b&l官方网站: mcfuzhu.net

 MS1.6: &9&l招收建筑师和技术员

 MS1.7: &d&l联系方式QQ: xxxxxxx

 MS1.8: &c&k=========================

 MS2: &c&l点击我即可打开快捷菜单

 MS2.1: &f&l输入/menu也可以打开快捷菜单

 MS3: &c&l点击我进行赞助充值

 MS3.1: &e&l获得激活码以后输入&4&l/code 卡密&e&l进行激活

 web: http://mcbbs.net

 every 1 minutes:

 loop all players:

 set {_Bnum} to a random integer between 0 
 and 2

 if {_Bnum} is 0:

 send json of "{@MS} {@MS1}" tooltip 
 "{@MS1.1} %new line% {@MS1.2} %new line% {@MS1.3} %new line% 
 {@MS1.4} %new line% {@MS1.5} %new line% {@MS1.6} %new line% 
 {@MS1.7} %new line% {@MS1.8}" to loop-player

 if {_Bnum} is 1:

 send json of "{@MS} {@MS2}" tooltip 
 "{@MS2.1}" run "/cmd" to loop-player

 if {_Bnum} is 2:

 send json of "{@MS} {@MS3}" tooltip 
 "{@MS3.1}" open "{@web}" to loop-player

这个就看上去很高级了,短短几十行代码就实现了自动公告插件的功能,可以代替automessage插件了,并且是完全支持json消息的,需要skquery支持。

很多服主梦寐以求的中文指令插件,用skript分分钟就能自己动手丰衣足食,不用再去求爹爹告奶奶的塞钱定制插件。

on chat:
message is "主城"
cancel event
make player execute command "/spawn"

如何使自己编写的脚本生效?

将代码另存为扩展名为sk的文件,上传到插件目录的Scripts文件夹。若sk文件名为1.sk,可以用/skript reload 1.sk 来加载1.sk,或/skript reload scripts重新载入所有sk。

进阶脚本编写教程

作者提供了丰富的文档资料供大家查阅(都是英文的,捂脸):http://njol.ch/projects/skript/。下面转载一些来自yyeerai的汉化编写教程。

skript的语法并不局限于简单的语句,也可以是更复杂的语句。做出更加意想不到的效果。在以后的教程中将详细讲解这些应用。高级语法:条件句,循环句,函数等等,数组也算。

变量 Variables

此乃编程之灵魂也!

sk变量有三种:一般变量,局部变量和options(预设值变量,需要{@变量}的形式调用)形式:
一般变量形式为:{变量体}
局部变量:{_变量体}(不会被保存)
预设值变量:options:
option name = option value

SK里面的变量声明一般可以预先声明也可以在使用的时候声明
预先声明:
variables:
{logincount} = 0
on login:
add 1 to {logincount}

一般变量都是 {变量名字} 这种形式
还有一种变量,就是变量列表一般形式为{变量名::序号}比如这个(数组):

command /staff:

                     description: Showsonlinestaff

                       trigger:

                                    loop all players:

                                            add loop-player to {onlinestaff::*}

                                    if size of {onlinestaff::*} is 0:

                                            message 
                    "Nostaffcurrentlyonline!Happygriefing;)!"

                                    else:

                                            message "Onlinestaff: 
                    %{onlinestaff::*}%"

使用的时候声明
on join:
set {_player} to player
wait a minute
message “%{_player}%”
在其他语句调用变量的时候以%变量%形式调用(主要是””里面调用的时候必须%变量%)

进阶教程未完待续,好吧其实是我觉得这插件深究至此就够了,其他的可去官网自行学习!


如未注明 , 均为原创丨转载请注明本文来自[全版本]想写插件却不会Java? 利用Skript脚本插件亲手打造属于自己的MC服务器插件! 由于本站属于分享类网站,故依据CC BY-NC-SA 3.0协议,收集了大量网络资源,如原作者对本站转载的资源不满意的话,可以联系我们进行删除处理,同时本站对原创作品享有相关法律权利。 联系邮箱【admin#mcfuzhu.net】【#换成@】
由于本站自建云盘因欠费400余元(泥萌太热情了)导致云盘在今年6月之前上传的数据全部丢失,目前站长已经把收集到的数据全部上传百度云,如仍有缺失请尽快告知!
喜欢 (31)or分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(6)个小伙伴在吐槽
  1. 看不懂'看不懂'看不懂。 重要的事情说三遍,本文需要高智商。
    zdd_dada2016-08-29 13:25 回复 iPhone 4_2_1 | Safari 6533.18.5
  2. o哦
    zdd_dada2016-08-29 13:26 回复 iPhone 4_2_1 | Safari 6533.18.5
  3. 签到成功!签到时间:2016-08-29 13:22:06,每日打卡,生活更精彩哦~
    zdd_dada2016-08-29 13:26 回复 iPhone 4_2_1 | Safari 6533.18.5
  4. 感觉很不错的样子!
    尚爱思笑话2016-08-29 16:06 回复 Windows 7 | 搜狗浏览器 2.X
    • :wink: 那当然啦
      mcfuzhu2016-08-29 18:42 回复 Windows 8.1 | Chrome 39.0.2171.99
  5. 蓝底蓝字看着实在是晃眼。
    themebetter2016-11-16 08:48 回复 Windows 10 | Chrome 47.0.2526.80
×
订阅图标按钮