收起

温馨提示

只有认证用户才能操作

为了享受完美体验,赶快去认证吧

认证
服务器&软件 > 话题详情
标记
软件
10827
10
举报
2016-10-25
13:24
lapin_boy 楼主
4 初入矿洞史蒂夫
帖子:5

sk系列教程目录:

    一、skript教程之基础教程(本篇)

    二、skript教程之自定义数据库

    三、skript教程之变量列表

    四、skript教程之函数与自定义事件

    五、skript教程之GUI界面

    六、skript教程之文件系统

    七、skript教程之title与action bar

    八、skript教程之boss血条

    九、skript教程之计分板

    十、skript教程之发包与收包

    十一、skriptAPI简述

简介:

    很多服主都有个梦想,就是有一天能够自己写插件,但是除了极少数服主以外,很少有人会写插件。现在这个情况改变了,利用skript你就可以办到。 skript脚本插件功能非常强大,可以写出如essentials这样复杂强大的插件。而不需要学习java知识。您可以轻松地创建复杂的自定义命令,在特定条件下执行效果的触发器,以及只需运行周期性的脚本,所有这些都不需要知道任何关于编程的一点点知识,你只需学习一点点skript脚本编写的方法。如果结合其他skript的扩展插件,功能强大不敢想象。Skript是一个流行的服务器插件。它允许服务器管理员在不写任何Java语言的情况下简单的管理Minecraft,这是用触发器(事件)、条件和效果三个部分做到的。当触发器触发,所有条件均满足,效果就会被触发。Skript的基础想法是——自定义 —— 每个服务器都能在没有自定义插件的情况下表现不同。这比你自己钻研插件和找人写插件快的多。同时你也不需要那么多小插件了,这一个插件就够了。

资源

最新skript官方文档(事件,条件,效果,表达式,类型,函数):http://bensku.github.io/Skript/index.html

工欲善其事必先利其器,这里是开发sk插件的环境配置

SK下载: 综合资源下载地址:点击下载

sk UDL下载及其安装

    1、请在这里:点击下载  下载skript.xlm

    2、安装 Notepad++

    3、在Notepad++ 设置里面选择语言格式设置

    4、选择导入主题,导入刚才下载的Skript.xml文件

    5、选择语言选项---自定义语言格式导入刚才的Skript.xml文件

    6、重启Notepad++,现在你就可以用Notepad++开发SK插件了

安装

我们需要将skript.jar安装到服务器插件文件夹里面,重启服务器,会生成skript文件夹,大概样子如下所示:

aliases-english.sk 为语言别称文件

config.sk 为一些配置选项

variables.csv 为变量存储文件

scripts 为脚本文件夹我们写的脚本放入这个文件夹

我的第一个sk插件

我们需要一个加入游戏时候向显示“hello minecraft”的插件,分三步

1、我们新建一个hellominecraft.sk文件

2、用notepad++输入以下代码

on join:

  set join message "hello minecraft"

3、保存并放入服务器sk插件脚本文件夹内,重启服务器

ok一个简单的自定义加入游戏提示就完成,加入游戏试试效果

sk的语法

sk的语法结构一般都是:event → condition(s) → effect(s) 即 事件或触发器 →  条件  → 效果,这样的步骤。

比如一个简单的挖石头提示脚本:

on mine of stone:  #事件及其条件

    send "你挖到一个石头!" to player  #效果

是不是很简单。每一个脚本都可以包含许多事件或触发器,每个触发器或事件对应一系列的条件和效果。

比如发射一个雷击效果的脚本:

on leftclick with a golden axe:#左键一个金斧头#事件:

    player has the permission "thor" #检查是否有权限thor    # 条件:

    strike lightning at the targeted block#在玩家前方释放闪电 # 效果:

    broadcast "%player%释放了雷击技能!"#广播释放闪电的消息   # 效果:

高级语法

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

欢迎加入地球在线

打赏

打赏人数2钻石+6理由

谁让我是浮鱼呢? 谁让我是浮鱼呢? +5 交个朋友吧

lapin_boy lapin_boy +1 麦块有你更精彩

只看楼主
打赏楼主
阔绰的打赏了钻石  1  颗
  • 1
  • 2
  • 3
  • 4
  • 5
麦块有你更精彩 66666666666 交个朋友吧 土豪,不解释 愿HIM与你同在
确定
评论
lapin_boy 楼主
4 初入矿洞史蒂夫
帖子:5

事件   

  事件就是当一件事情发生的时候,例如玩家点击了东西,打出伤害,死亡,吃东西,移动或一个怪物做了一些事情,甚至是环境自己改变。这些事件的发生的时候就会执行事件下面的效果。

例如:

on explode:

    cancel event

当爆炸时:

    取消事件的发生

一般理解为当什么什么发生的时候:

一般格式为:

on ****:

    条件

    效果

注意空格,事件后都有一个冒号。你可以用4个或8个空格或者使用tab缩进。以后所有脚本遇到一个冒号就要换行缩进,这是严格要求的,否则会出现错误。

条件

   条件执行下一部分代码所要判断的前提。

例如:

on leftclick with a golden axe:#左键一个金斧头 #事件:

    player has the permission "thor" #检查是否有权限thor    # 条件:

    strike lightning at the targeted block#在玩家前方释放闪电  # 效果:

    broadcast "%player%释放了雷击技能!"#广播释放闪电的消息

效果

  效果可以理解为执行的语句,就是事件发生,条件达到,开始执行语句。

例如:

on damage:

    victim is a player

    victim has the permission "skript.god"

    cancel the event

cancel event就是一个效果,他的作用是在符合条件以后,取消受到伤害这个事件。

1楼
2016-10-25 09:21
回复

欢迎加入地球在线

lapin_boy 楼主
4 初入矿洞史蒂夫
帖子:5

指令

    Skript允许你自己自定义指令。这些指令和其他插件一样被注册,你可以像使用其他指令一样使用它。这些命令与事件写法大体相似,就是一个用指令触发的事件。指令的完全形式如下:

command /commandname <arguments>: # 这里是注册指令

    description: 这里是指令描述(可以省略)

    usage: 这里是告诉玩家怎么使用指令(可以省略)

    permission: 这里是执行这个指令需要的权限(可以省略代表所有人有权限)

    permission message: 当没有权限的时候提示的信息(可以省略)

    executable by: 这里是指令执行这者可以是players/console/players 和 console (可以省略,代表所有方式执行)

    aliases: 指令的别称或者缩写不可以有空格 (可以省)

    trigger: #触发指令以后执行的代码

        这里写上条件或者表达式当这个指令被执行的时候这些代码将被执行

例如:

command /hi:#注册一个hi指令

    permission: skript.hi#执行这个指令所需的权限

    trigger:

        message "hi"<span style="line-height: 1.5;">#执行指令以后给执行的玩家发送一条信息“hi


command /hi <player>:#注册一个hi指令,这个指令有一个参数是player类型的

    permission: skript.hi#执行这个指令所需的权限

    trigger:

        send "hi" to argument#执行指令以后给参数所代表的玩家发送一条信息“hi”


   对比两个代码,发现指令的参数不同,所执行的效果也不同,第二个代码里面的argument代表参数所代表的玩家,可以简写为arg,有多个参数可以使用arg-1,arg-2来调用。


2楼
2016-10-25 10:03
回复

欢迎加入地球在线

lapin_boy 楼主
4 初入矿洞史蒂夫
帖子:5

变量
  变量是用来在储存脚本产生数据的。可以使用变量名称来调用存储在此变量名称里面的数据。sk变量有三种:全局变量,局部变量和options(预设值变量,需要{@变量}的形式调用)形式:
全局变量:
{变量名}
局部变量:
{_变量名}
预设值变量:
options:
    option name: option value

变量初始化:
预先初始化:

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::*}%"

变量列表我会在第三期教程里面详细讲解
在其他语句调用变量的时候以%变量%形式调用(主要是""里面调用的时候必须%变量%)

3楼
2016-10-25 10:06
回复

欢迎加入地球在线

lapin_boy 楼主
4 初入矿洞史蒂夫
帖子:5

循环
  循环语句可以用来完成复杂的任务。比如给所有玩家一个礼物等等,一般循环有loop和while循环。
loop循环的一般形式

loop <expression to loop>:  #loop 循环体:               

    <condition(s)>      #条件         

    <effect(s)>         #效果

一个简单的例子

loop {var::*}:

    set {var::%loop-index%} to loop-value + 1

  这里的::我们理解他为域操作,循环变量列表{var::*},第二句是让var::*的所有成员加1并赋值给{var::%loop-index%},这样我们就可以批量为某一变量赋值,按照变量列表的方式处理有大量变量的内容可以简单高效。


可以循环的对象:
1、变量列表
2、玩家
3、方块
4、实体
………………
对应的循环值:
loop-value
loop-player
loop-block
loop-entity


循环指定次数

loop number times:
表示循环number次


while循环的一般形式:

while <condition(s)>: #while 循环条件: 

    <condition(s)> #条件 改变

    <effect(s)> #效果

   只要条件达到while循环就会一直持续下去,所以你在while循环的时候必须给条件一个改变的值或者结束条件,否则可能会使你的服务器奔溃。

条件句
这是一个非常好的特性,当条件满足,将会执行这个触发器。大概形式是这样的:

if <condition(s)>:

    code

else:

    code

例如:

on login: #事件--当登陆的时候

    if chance of 50%:  #条件 50的几率

        give a cake to the player #效果执行一个give语句

        send "你获得了登陆奖励 =)" to the player #继续执行一个语句,给玩家发送一条提示语句

    else: #if----else语句

        send "没有获得奖励,下个时段再来" to the player

这个脚本是给了每个玩家50%的机会,在登录时收到一个蛋糕,并通知他们得到礼物,如果他们没有收到礼物则通知他们下个时段再来

==============================================================================

本文先发布于mcbbs,非本人授权禁止转载

mcbbs地址:http://www.mcbbs.net/forum.php?mod=viewthread&tid=492211

4楼
2016-10-25 10:12
回复

欢迎加入地球在线

谁让我是浮鱼呢?
3 石器时代艾利克斯
帖子:6

lz厉害!!大力挺你 厉害厉害!

5楼
2016-12-06 20:51
回复

1.7.10大型拔刀服务器群号:734259439!

碎月 j 〆伤
0 不知所措史蒂夫
帖子:0

兄弟我很想学。。但你给的云盘地址里啥资源都没有啊!!

6楼
2016-12-20 23:03
收起回复
我也说一句...
回复
lapin_boy
lapin_boy:已经修复
2017-01-10 14:01
回复
不朽遇到梦魇
2 手撸大树史蒂夫
帖子:2

= =字体能改一下吗?看着贼难受

7楼
2016-12-21 13:57
收起回复
我也说一句...
回复
lapin_boy
lapin_boy:访问原贴http://www.mcbbs.net/forum.php?mod=viewthread&tid=492211
2017-01-10 14:17
回复
蓝龙°
2 手撸大树史蒂夫
帖子:16
貌似有点复杂
8楼
2016-12-31 21:16
回复
lapin_boy 楼主
4 初入矿洞史蒂夫
帖子:5
已经修复
9楼
2017-01-10 14:01
回复

欢迎加入地球在线

lapin_boy 楼主
4 初入矿洞史蒂夫
帖子:5
 发表于7楼2016-12-21 13:57
访问原贴http://www.mcbbs.net/forum.php?mod=viewthread&tid=492211
10楼
2017-01-10 14:17
回复

欢迎加入地球在线

下载排行
欢迎加入麦块社区
已奖励您
30经验值3钻石
要继续支持麦块喔
请收下3