大家交流下挂机经验,好的可以一起分享,不懂的提问解答.脚本帖请发此帖,请勿灌水,谢谢!!
KCC脚本经典窍门(转载TJ论坛)
============变量篇
变量其实就是数值可变的一个存数据的东西,他的值的不同表示不同的意思,通过判断这个值来实现知道下一步该怎么做
$_开头的是天骥自带的系统变量,他的值都时刻表示当前的信息
$_当前地图 是外挂的脚本环境自己带的,和自己设置的有区别
====================最基本的东西
<>
返回
这个是有标记的,最后是以返回结尾的就是子脚本
子脚本 要用 “调用”
躲避PKER开启 表示以后被PK的话会躲避
躲避PKER关闭 与之对应
==================很基本但也很实用的循环
<地图判断>
跳转到<$_当前地图>
边打边走到门点[$_当前地图,XX,XX]
跳转到<地图判断>
边打边走到门点[$_当前地图,XX,XX]
跳转到<地图判断>
边打边走到门点[$_当前地图,XX,XX]
跳转到<地图判断>
如果[当前地图名]=$_当前地图
那么跳转到<$_当前地图>
随机移动[$_当前地图,$_当前X,$_当前Y]
==================判断身上装备有无
[$衣服][数量]=0 ======= 判断背包里面有没有衣服
如果[自己][衣服][名称]="" ========判断身上
&& 是“并且”的意思
|| 是“或者”的意思
<> 是 "不等于"的意思
..........................
如果如果[自己][衣服][持久]<2 || [自己][武器][持久]<3 || [自己][头盔][持久]<2 || [自己][项链][持久]<2 ||[自己][左手镯][持久]<2 || [自己][右手镯][持久]<2 || [自己][左戒指][持久]<2 || [自己][右戒指][持久]<2
那么调用<装备修理>
判断身上和背包没有装备就去买
如果[$衣服][数量]<1 && [自己][衣服][名称]<>$衣服
那么调用<衣服购买>
..........................
如果[本机时间]>=00:00:00 && [本机时间]>=00:01:00
那么$战斗地图=萧少家
那么跳转到<回城>
<回城>
.......
<出发>
如果$战斗地图=萧少家
那么跳转到<前往萧少家>
如果[本机时间]>=00:00:00 && [本机时间]>=00:01:00 && $战斗地图<>萧少家
..........................
如果[自己][右戒指][持久]<>[自己][右戒指][最大持久]
意思就是身上左戒指的持久有消耗就为满足,如果持久为满的就不满足
如果[自己][衣服][名称]<>"$衣服" && [$衣服][数量]=0
那么调用<衣服购买>
..........................
天骥的物品持久判断是最高持久,使用次数判断是最低使用次数,修理的时候修理背包中持久最低物品.
如果[$马牌][使用次数]<[自己][马牌][最大持久]*10
那么调用<马牌修理>
.............................
修理背包里面全部的勋章
有几个马牌修理几次呗
<背包马牌修理>
$mapainum=[$马牌][数量]
<开始修理>
如果$mapainum<1
那么返回
否则特修[$马牌]
否则$mapainum=$mapainum-1
跳转到<开始修理>
========================判断背包
如是[自己][包裹空位]<1
那么跳转到<回城>
================ 间隔一定时间使用 技能
$等待时间=[当前时间]
<全局脚本开始>
如果[当前时间]-$等待时间>=6000 ********这里的时间是毫秒
那么$等待时间=[当前时间]
那么使用技能[无级真气]
-------------
在全局时间设置一个时间判断
如果[本机时间]>=03:00:00 && [本机时间]<=03:05:00 || [本机时间]>=09:00:00 && [本机时间]<=09:05:00
那么跳转到<去血色峡谷>
--------------------
$时间定位=[当前时间]
<全局变量开始>
如果[当前时间]-$时间定位>=3600000 ********这里的时间是毫秒
那么跳转到<回城>
.......
<全局变量结束>
...............
如何引用时间判断来购买宝宝!
在脚本的开头,先定义一个时间变量
如果$上次买宝宝时间=""
那么$上次买宝宝时间=[当前时间]-3600000
在快出发的时候
如果[神兽(黄天霸)][数量]<1 && [当前时间]-$上次买宝宝时间>=3600000
那么$上次买宝宝时间=[当前时间]
那么调用<购买宝宝>
...............
<全局脚本结束>
或者:
$上次时间=[当前时间]
<全局脚本开始>
如果[当前时间]-$上次召唤时间>60000 ********这里的时间是毫秒
那么$上次时间=[当前时间]
那么跳转到<刷怪>
-----------------
$时间定位=[当前时间]
<全局变量开始>
如果[当前时间]-$时间定位>=8000000 ********这里的时间是毫秒
那么$时间定位=[当前时间]
那么跳转到<回城>
<全局变量结束>
==================================触发器
夫妻传送时时开启
触发器:禁止夫妻传送
说话[@允许夫妻传送]
触发器结束
<挂机脚本开始>
说话[[@允许夫妻传送]
----------------------------------------------
见某个完家就逃跑那种触发
这个工作不同由触发器来做,而应该由全局脚本完成
<全局脚本开始>
如果[ 玩不死][数量]>=1
那么系统显示[晕,我看见我自己了]
那么跳转到<逃跑>
..............................................
组队通信[被控][那小子在$地图编号,$横坐标,$坚坐标,快去灭他]
触发器:小子在%$地图编号%,%$横坐标%,%$坚坐标%,快去灭 触发器结束
..............................................
触发器主要用来截取服务器返回信息包括玩家,说话,喊话,密语,及服务器公告.下面这个脚本为触发器典型应用,需要的玩家可以借鉴一下
触发器和脚本同时运行没有开关只要脚本在运行触发器就可以出发,并且在一个脚本中可以放入多个触发器配合执行
下面是一个关于触发器的示例脚本,可以通过脚本实现道士持续加魔加防,并且当宝宝不在身边的时候实时的把宝宝召唤到身边,避免了程序内置的当宝宝不在身边时会狂招的情况.请注意颜色突出的部分!
$money=0
$havebaby=0
$衣服=[自己][衣服][名称]
$武器=[自己][武器][名称]
$马牌=[自己][马牌][名称]
$项链=[自己][项链][名称]
$右手镯=[自己][右手镯][名称]
$头盔=[自己][头盔][名称]
$左戒指=[自己][左戒指][名称]
$右戒指=[自己][右戒指][名称]
装备[护身符(大)]到[左手镯]
使用技能[神圣战甲术]
使用技能[幽灵盾]
*宝宝是否存在及状态判断
触发器:属下:休息 ----------------------------------------------------此处为需要截取信息也是触发器开始的标志
$havebaby=1-----------------------------------------------------------这里为信息触发后所需要执行的语句可以有多行
触发器结束 并且可以加入条件判断
触发器:属下:攻击
$havebaby=2
触发器结束-------------------------------------------------------------此处为触发器结束标记
挂道士何必去强求左手镯戴装备呢,难道召了宝宝出来就一直用砍的?
TJ对判断宝也就那么一个语句:
如果[宝宝名称][数量]<1
那么......
这条语句只能判断宝宝是否在身边,如果他还活着却不在身边,判断也为满足
这时候就不能:那么使用技能[召唤...]了,否则一直召,召死你
当宝宝不在身边用什么来判断宝宝是否活着是关键,在使用"宝宝休息"命令时,系统会有提示:宝宝休息 或 宝宝攻击 如果宝宝已经挂了,什么提示也没有,所以我们可以用到触发器来捕捉这个提示
$宝宝还在=1
触发器:宝宝休息
$宝宝还在=1
宝宝休息 一旦系统显示[宝宝休息],就表示定宝还在,却处于休息状态,所以我们马上用一条"宝宝休息"语句让他攻击,这条语句是循环起效的
触发器结束
................
如果[宝宝名称][数量]<1
那么$宝宝还在=0
那么宝宝休息
等待[300]毫秒 等待一下,让触发器有一个反应时间
如果$宝宝还在=0 如果触发器没生效,那这个变量还是0,就可以召宝了
那么使用技能[召唤....]
那么装备[..]到左手镯
这种办法理论上可以实现召宝了,但这些语句该放到哪里我一时也晕乎乎,呵呵
放全局里吧,等待语句全局是不执行的,没有留出一点时间给给触发器反应,马上就开始召宝了
放脚本正文吧,又一时想不出该怎么放,呵呵 有时间我考虑考虑,再发个贴补上
..................................
#1 控制宝宝的方法(7月18日),加入宝宝挂了以后重新召的功能)
$宝宝是否还活着=0
$召集宝宝时间=10000
$上次召回宝宝时间=[当前时间]
触发器:下属:攻击
$宝宝是否还活着=1
如果[当前地图名]=0 || [当前地图名]=3 || [当前地图名]=11
那么宝宝休息
触发器结束
触发器:下属:休息
$宝宝是否还活着=1
如果[当前地图名]<>0 && [当前地图名]<>3 && [当前地图名]<>11
那么宝宝休息
触发器结束
<全局脚本开始>
如果[神兽(黄天霸)][数量]<=0 && [当前地图名]<>0 && [当前地图名]<>3 && [当前地图名]<>11 && [当前时间]-$上次召回宝宝时间>=$召集宝宝时间
那么$上次召回宝宝时间=[当前时间]
那么跳转到<召回宝宝>
..................
<全局脚本结束>
宝宝休息
<回城>
关闭全局脚本
躲避PKER关闭
停止战斗
使用[回城卷]
宝宝休息
................
<战斗>
宝宝休息
............
<召回宝宝>
$宝宝是否还活着=0
宝宝休息
等待[500]毫秒
如果$宝宝是否还活着=0
那么使用技能[召唤神兽]
跳转到<战斗>
新版本中道士有一个"宝宝不在身边N秒召唤"的选项,所以道士脚本已经不用做这项工作了
脚本要做的是很好地控制宝宝在身边,回城时让宝宝定住,通过触发器能很好地实现
在脚本第一句用一个宝宝休息指令
在回城后用一句宝宝休息指令
在开始战斗后又用一句
当宝宝不在身边用一句,但不能太快,每次间隔 $召集宝宝时间 毫秒,这项工作由全局脚本来完成,但由于全局里不能用"宝宝休息"这条语句,所以用到了跳转
这次加入了判断宝宝是否还活着的变量 $宝宝是否还活着 当=0时表示否,=1表示在,当使用 宝宝休息 指令前先人为地把变量设置为0,使用 宝宝休息 指令时,只要宝宝还在世上,就会有提示,那2个触发器就肯定会把这个变量置为1,所以 宝宝休息 以后只需要判断这个变量就可以判断出宝宝是不是挂了,从而实现及时召宝
=============================================
*以下实现持续加魔
触发器:魔法防御力恢复正常
使用技能[幽灵盾]
触发器结束
*实现持续加防
触发器:防御力恢复正常
使用技能[神圣战甲术]
触发器结束
============================
装备持久可以用如果[自己][武器][持久]<>[自己][武器][最大持久]
这个东西好用哦
==================================
解密的方法:例如:你上号解密的方法如下,先打字:"@解密",然后打字你的密码
说话[@解密]
说话[你的密码]
这样就行了,哪里需要扔物,取包就加在哪里啰,如果每次上线只需要解密一次,就加在脚本正文的最前面
=================================
比如,武士的新技能叫 我最牛 ,这个技能是当周围怪物超过5个被围住的时候使用的
可以在全局中加入:
如果[自己][所有方向][怪物数量][3格]>5
那么使用技能[我最牛]
======================人物等级判断
在全局里加上:
如果[自己][等级]>=N
那么跳转到<下线>
<下线>
下线
===================判断丢弃护身符-脚本段
如果[自己][左手镯][持久]=0
那么装备[$左手镯]到[左手镯]
如果[护身符(大)][使用次数]<10
那么丢弃[护身符(大)]
==========================好东西
<全局脚本开始>
如果[自己][HP]<5500
那么 说话[*]
如果[自己][HP]<4500
那么 说话[你娃是不是要找屎]
如果[自己][HP]<3500
那么 说话[再打日死你]
如果[自己][HP]<2500
那么 说话[我怕你了,让我专心练会级吧]
=========================安全区补血
<去安全区>
*X,Y请设置为安全区的一个点
走到附近[当前地图,X,Y]
<血量判断>
*N为血量的具体数值
如果[自己][HP]>N
那么返回
否则等待[2000]毫秒
跳转到<血量判断>
在总控里面加上一句
如果[自己][HP] 那么调用<去安全区>
这样当自己的血量少于N的时候会走到安全区等待血量恢复后才继续
====================买药跑动买!!!
随机移动[地图编号,X,Y]
会在X,Y的6格范围内不停的跑动
=============================过特殊门口
光芒回廊到烈焰殿过铁门
还有纵横道的过铁门
光一个坐标根本过不去的
这种门必须在门旁边贴着门走来走去,一不小心就过门了,呵呵
设置一个循环,让号在门点的左右两边贴着门来回地走动,在循环中加入判断,一量已经地门,马上跳出循环
=============================================
组队(同去同回):
主控:
触发器:我*,什么意思啊?斑竹辛苦说了那么多天你却不领情!
跳转到<回城>
触发器结束
<挂机脚本开始>
<回城>
结束控制
关闭全局脚本
停止战斗
触发器关闭
组队通信[被控][我*,什么意思啊?斑竹辛苦说了那么多天你却不领情!]
结束控制
关闭全局脚本
停止战斗
如果[11,177,324][距离]>200
那么使用[回城卷]
...........
<战斗>
系统显示[大爷目前所在位置是: $_当前地图,开始辛苦的工作了~~~!]
开始控制
边打边走到[$_当前地图,37,16]
边打边走到[$_当前地图,13,37]
边打边走到[$_当前地图,17,12]
边打边走到[$_当前地图,37,35]
跳转到<战斗>
被控:
触发器:我*,什么意思啊?斑竹辛苦说了那么多天你却不领情!
跳转到<回城>
触发器结束
<回城>
解除被控
关闭全局脚本
停止战斗
触发器关闭
组队通信[主控][我*,什么意思啊?斑竹辛苦说了那么多天你却不领情!]
解除被控
关闭全局脚本
停止战斗
如果[11,177,324][距离]>200
那么使用[回城卷]
...........
<战斗>
系统显示[大爷目前所在位置是: $_当前地图,开始辛苦的工作了~~~!]
请求被控
边打边走到[$_当前地图,37,16]
边打边走到[$_当前地图,13,37]
边打边走到[$_当前地图,17,12]
边打边走到[$_当前地图,37,35]
跳转到<战斗>
=======================================组队!!! 被控跟随的设置!!
被控只跟不打的设置!!(目前仅测试战士职业有效,其他职业待测)
队伍组好来
主控烈火`半月`刺杀全部开
目标选择: 不抢怪(不要开!!)
被控:
选择跟随攻击
只开烈火,(半月`刺杀不开,怕打到其他怪)
不抢怪不要开启!!
===============================
组队通信[被控][控制码:1,参数1:2,参数2:3]
触发器:控制码:%$码号%,参数1:%$1号参数%,参数2:%$2号参数%
$码号=1
$1号参数=2
$2号参数=3
主控发出这个组队通信以后,被控如果用那个触发器接收,就能够给那3个变量赋值了
===============================登陆需要密码的服务器
方法:
别理会这个,该干什么干什么
然后加一个触发器
当没有输入密码的情况下行走的话,走不了
而且私服会有信息显示,把这个作为触发器
在触发器里开密码
==============================走路模式
目前有三种模式,模式1,模式2,模式3
模式1对应1.16版本的封包发送模式
模式2对应1.18的走路封包发送模式
模式3对应1.18以后的版本走路封包发送模式
您喜欢哪一个版本,就选择相对应的模式!
在基本设置-系统设置中进行设置!
=======================================传送戒指飞
<全局脚本开始>
如果[自己][HP]<850
那么跳转到<换传送戒指>
..............
<换传送戒指>
装备[传送戒指]到[左戒指]
那么说话[@move]
装备[$左戒指]到[戒指]
跳转到<$_当前地图>
===============================模式转换!
关于模式这个问题偶在这里跟大家说清楚来吧(以下是偶的心得,得助于啊龙,在此再次谢谢他!)
大家对模式转换这个问题很晕吧?
弄不好是经常的事情了,因为没有人教过,有的东西确实是难以理解,好在有啊龙帮助,这下大家就都可以知道怎么做了!!
模式转换,服务器给我们什么提示呢?
有的服务器这样来: 〖提示〗[攻击模式: 和平攻击]
有的服务器这样来: 提示:[攻击模式: 和平攻击]
这个信息从什么地方来?
不急看下面:
在信息栏上面有一个 聊天 把它选上(这个时候是实景地图变成信息栏了)
然后手动按键盘Ctrl+H (这个是换模式撒```)
这个时候在信息栏上面就有服务器提示的东西了! (提示:[攻击模式: 和平攻击]或者〖提示〗[攻击模式: 和平攻击])
把这个东西复制下来(单单是复制[攻击模式: 和平攻击]这个东西而已是不行滴,要全部复制的哦)
然后粘贴到外挂"基本设置"→"系统设置2"→"和平攻击模式匹配提示"这里去
最后再点确定
OK了!
类似的还有一个东西是:
后门命令,一些后门命令被GM用看不见的符号给弄出来了,但是我们要用到,有的是打字打不出来的,那就用这个方法复制出来吧!很好用滴~~~~~~~
后门命令截取是从什么地方来的?
不急看下面:
在信息栏上面有一个 聊天 把它选上(这个时候是实景地图变成信息栏了)
然后手动按键盘Ctrl+K (这个是调出后门命令的撒```)
你再去手动跟NPC对话,这个时候在信息栏上面就有提示的东西了!
@BUY
这个就是买东西的后门命令了
然后怎么使用呢?
给你个例子吧:
<药品购买2>
系统显示[偶正在买红药]
走到附近[3,361,335]
对话[药店老板]
后门命令[@BUY]
买够[超级魔法药]3个
后门命令[@exit] -------这个是返回
OK了!
=================================================
我 想 用随机飞到 8.10或 9.12 或5.10 等的位置 这里的脚本应该 这样写
<随机飞>
如果$_当前X=8 && $_当前Y=10 || $_当前X=9 && $_当前Y=12 || $_当前X=5 && $_当前Y=10
那么跳转到<已到位置>
否则使用[随机传送卷]
否则等待[3000]毫秒
否则跳转到<随机飞>
<已到位置>
===================================================
背包判断:
如果[自己][包裹空位]<=0
那么<>
这是判断包袱是否满的,只要包袱物品达到40个就表示满了,而不是46个
丢弃多余回城卷
<clearback>
$m=[回城卷][数量]
$n=1
调用<clear>
返回
<clear>
系统显示[ 丢弃多余的回城卷]
丢弃[回城卷]
$n=$n+1
如果$n<$m
那么跳转到<clear>
返回
=======================
风魔过门事例:
<D2005>
边打边走到[D2005,20,21]
走到[D2005,21,22]
走到[D2005,18,19]
跳转到<战斗>
==============================================
<装备初始化>
$max0=[自己][马牌][最大持久]-
$max1=[自己][衣服][最大持久]-
$max2=[自己][武器][最大持久]-
$max3=[自己][头盔][最大持久]-
$max4=[自己][项链][最大持久]-
$max5=[自己][左戒指][最大持久]-
$max6=[自己][右戒指][最大持久]-
$max7=[自己][左手镯][最大持久]-
$max8=[自己][右手镯][最大持久]-
返回
==============================================
通告[执行脚本]
是主控给所有被控发出的,会让所有的被控重新执行脚本
===================================================
百分比表示法:
$回城持久百分比=20
$修理持久百分比=50
$马牌回城持久=[自己][马牌][最大持久]*$回城持久百分比/100
$武器回城持久=[自己][武器][最大持久]*$回城持久百分比/100
$衣服回城持久=[自己][衣服][最大持久]*$回城持久百分比/100
$头盔回城持久=[自己][头盔][最大持久]*$回城持久百分比/100
$项链回城持久=[自己][项链][最大持久]*$回城持久百分比/100
$左手镯回城持久=[自己][左手镯][最大持久]*$回城持久百分比/100
$右手镯回城持久=[自己][右手镯][最大持久]*$回城持久百分比/100
$左戒指回城持久=[自己][左戒指][最大持久]*$回城持久百分比/100
$右戒指回城持久=[自己][右戒指][最大持久]*$回城持久百分比/100
$马牌修理持久=[自己][马牌][最大持久]*$修理持久百分比/100
$武器修理持久=[自己][武器][最大持久]*$修理持久百分比/100
$衣服修理持久=[自己][衣服][最大持久]*$修理持久百分比/100
$头盔修理持久=[自己][头盔][最大持久]*$修理持久百分比/100
$项链修理持久=[自己][项链][最大持久]*$修理持久百分比/100
$左手镯修理持久=[自己][左手镯][最大持久]*$修理持久百分比/100
$右手镯修理持久=[自己][右手镯][最大持久]*$修理持久百分比/100
$左戒指修理持久=[自己][左戒指][最大持久]*$修理持久百分比/100
$右戒指修理持久=[自己][右戒指][最大持久]*$修理持久百分比/100
$个=个
===================================================
$统修=0
如果[待售武器][数量]>=1 或者 $武器持久>[自己][武器][持久] 或者 $统修=1
在用脚本的时候,在最前面,可以设置为=1,也可以设置为=0
纯粹的一个开关
也就是说,在装入脚本的时候,就可以控制挂机号是每次回城都去修理,还是只有持久掉到相应的数量才去修理
只能用||,不能用&&
用|| 的话,相当于一个开关,如果这个变量=1,就每次回城都去修理
如果他=0,就判断持久再去修理
你说用&&,如果=1,就判断持久,修理
如果=0,永远不去修理了
天霸:
你的思维方式要改改,变量作为开关,并不是一定要在脚本中动态地改变,有的时候,为了方便,只需要在装入的时候规定就行了,以后就一直这么弄,而不需要每次写脚本都改总控部分
=======================================
如果[自己][红名]
那么
=======================================
=======================================
1.187 版本新脚本语句:
放弃攻击目标
[仓库][物品数量] -- [仓库][传送戒指数量]
只支持IF ElSE EndIF
嵌套
IF
IF
Else
ENDIF
ELSE
ENDIF
现在是IF 条件
执行满足条件的东西
ELSE
执行否则的东西
ENDIF
================================
关于组队
<地图查询>
组队通信[被控][地图$_当前地图,$_当前X,$_当前Y]
跳转到<地图判断>
返回
******************************************
netstat -n
查看网络连接
******************************************
陷阱触发器:
策略触发:您现在要使用系统赠送您的
动作:执行其后第2个命令
命令总数
1.188新增加脚本命令
五、新增脚本命令
@Rest 宝宝控制
@AttackMode 攻击模式
对话坐标[X,Y] //同某个坐标上的NPC对话
攻击坐标[X,Y] //攻击某个坐标点
[玩家数量][X,Y] //某个坐标点上玩家数量
[怪物数量][X,Y] //某个坐标点上怪物数量
六、增强对宝宝的控制能力
在道士的职业设置中新增三个用于宝宝控制的设置
允许匹配宝宝休息或攻击的提示,然后根据提示决定如何控制宝宝
当宝宝休息时,系统会提示
当宝宝攻击时,系统会提示
同时增强"宝宝休息"的脚本命令,当上述三个设置正确后,宝宝休息不再是一个开关命令,执行“宝宝休息”脚本命令,在非战斗状态将始终定住宝宝,在战斗状态下,当宝宝不在角色视线内时会激活宝宝。 如果设置不正确,则效果同以前版本相同。
增加“宝宝攻击”的脚本命令,起作用与否也取决于上述三个设置的正确设置。
七、增加对宝宝攻击目标的判断
[宝宝攻击目标][名称] --得到宝宝正在攻击的目标名称
[宝宝攻击目标][类别] --得到宝宝攻击目标的类别,返回的类别有:玩家,怪物,不可攻击,宝宝,未知
[宝宝攻击目标][方向][不可攻击目标] --得到宝宝周围的不可攻击目标数量 方向可以是前,左前,右前,后,左后,右后,左,右,前,后,所有方向的组合。[