热点推荐

小喇叭+ 发布

01-16 02:17
01-16 02:04
01-13 17:30
查看: 711|回复: 0

[脚本示例] 脚本制作变量大全

[复制链接]
avatar

签到天数: 350 天

[LV.8]以坛为家I

7651

主题

255

回帖

31万

积分

司徒主管

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

UID
1
司徒币
260195
传世币
3000
元宝
0
在线时间
266 小时

最佳新人灌水之王

QQ
online_admin 发表于 2022-5-23 17:40:06 | 显示全部楼层 |阅读模式
<p>checkjob(Warr,Wizard,Taos);测试职业
checkgold(金币数);测试金币
checklevel(等级);测试等级
checkitem(物品名)(数量);测试物品及数量
givegold(金币数);给钱
give(物品名)(数量);给物及数量
takegold(金币数);拿走钱
take(物品名)(数量);拿走物及数量
checkpkpoint(pk值);测试PK值
checkluckypoint(幸运值);幸运值正值为好,负值为差
checkduraeva(物品名)(数值);一般测试矿物等物品的品质
checkhum(地图名)(数值);测试这个地图的人数
checkmonmap(地图名)(数值);测试这个地图的怪物数
map(地图名);移动到这个地图
mapmove(地图名)(坐标A)(坐标B);移动到这个地图指定坐标
monclear地图清除
close关闭对话框 copyright dedecms
TimeRecall(设定时间值);分钟,一般指进入地图时间限制
BreakTimeRecall;中断设定时间
ExchangeMap(地图名);与指定地图里的人交换位置
daytimesunset;一天时间
checkbaggage;测试背包满没
small(变量)(数值);测试变量是不是小于指定数值
large(变量)(数值);测试变量是不是大于指定数值
equal(变量)(数值);测试变量是不是等于指定数值
mov(变量)(数值);让变量等于指定数值
sum(变量A)(变量B);A+B注意,如果还要家第3个数直接换行写sum(变量C)
注:关于SUM的详解
首先有MOV(变量X)0;(变量X)清0
sum(变量A)(变量B);X=A+B
sum(变量C);X=X+C
movr(变量)(数值);随机把指定数值以下的数(正数)给变量
inc(变量)(数值);让变量自动加指定数值到变量 织梦好,好织梦
playdice(骰子数)@xxx;玩骰子,跳转到标签[@xxx]
random(随机数);一般用在#IF语句中作为触发#IF机率,有时随机数=并列#IF语句数用于随机多项选择,既:
#IFRANDOM3#SAY()#ELSEACT
#IFRANDOM3#SAY()#ELSEACT
#IFRANDOM3#SAY()#ELSEACT
Check[条件数]1;测试[条件数]触发与否1(触发)
SET[条件数]1;设置[条件数]触发  本文来自织梦
batchDelay(暂停时间);一般为1
addbatch(地图名1)
addbatch(地图名2)
addbatch(地图名3)
addbatch(地图名4)
addbatch(地图名5)
batchmove;一步步到下一个地图直到5 copyright dedecms

param101141;01141=(地图名)
param210
param310
mongen火焰沃玛2(怪物名)3010 内容来自dedecms


;玩骰子脚本解析 织梦内容管理系统
#IF
equalp91;测试p9是不是等于1
#ACT
goto@cube;是的,到@cube
BreakTimeRecall(中断设定时间)
break copyright dedecms

#IF
equalp99;测试p9是不是等于9
#ACT
goto@quit;是的,到@quit退出
BreakTimeRecall(中断设定时间)
break 织梦内容管理系统

[@main-1]
#IF
#ACT
movp90;测试p9是不是等于0
#SAY
say;欢迎词
织梦好,好织梦

[@pre_cube]
#IF
checkitem筹码1;测试有没有筹码
#ACT
movp91;有,让p9=1
take筹码1;给出一个筹码
movrd06;;随机把6以下的数(正数)给d0
incd01;让d0自动加1到d0
playdice1@cube;玩骰子,点击到标签[@cube]
#SAY
正在投骰子.
#ELSESAY
quit

#ELSEACT
movp99;转到标签@quit并让P9等于9 dedecms.com
[@Quit]
#IF
#ACT
mapB011;退出到B011地图
[@cube]
#IF
#SAY
骰子的点数;是变量,把D0数值型转字符型
你可以前进 copyright dedecms

[@next_cube]
#IF
equald01;如果d0=1
#ACT
goto@posi1;到POSI1
break 本文来自织梦
#IF
equald02
#ACT
goto@posi2
break 织梦好,好织梦
#IF
equald03
#ACT
goto@posi3
break copyright dedecms
#IF
equald04
#ACT
goto@posi4
break 织梦好,好织梦

#IF
equald05
#ACT
goto@posi5
break 织梦好,好织梦

#IF
equald06
#ACT
goto@posi6
break copyright dedecms
[@Posi1]
#IF
#ACT
batchDelay1;一般为1(暂停时间)
addbatchB102;步进地图名1
batchmove;移动到最后一个步进地图 织梦好,好织梦

[@Posi2]
#IF
#ACT
batchDelay1
addbatchB102
addbatchB103
batchmove 内容来自dedecms

[@Posi3]
#IF
#ACT
batchDelay1
addbatchB102
addbatchB103
addbatchB104
batchmove 织梦内容管理系统
[@Posi4]
#IF
#ACT
batchDelay1
addbatchB102
addbatchB103
addbatchB104
addbatchB105
batchmove 织梦好,好织梦
[@Posi5]
#IF
#ACT
batchDelay1
addbatchB102
addbatchB103
addbatchB104
addbatchB105
addbatchB106
batchmove 织梦内容管理系统
[@Posi6]
#IF
#ACT
batchDelay1;一般为1(暂停时间)
addbatchB102;步进地图名1
addbatchB103;步进地图名2
addbatchB104;步进地图名3
addbatchB105;步进地图名4
addbatchB106;步进地图名5
addbatchB107;步进地图名6
batchmove;移动到最后一个步进地图(这里是6) dedecms.com

;结束 织梦好,好织梦


SET copyright dedecms
语句:
#IF
……
#ACT(SAY)
……
#ELSESAY(ACT);ELSE的两句是并列的,都是IF(条件)的动作
……
#ELSEACT(SAY)
…… 织梦好,好织梦

goto(标签名)
break(中断)
;换行
本文来自织梦


变量:
当前用户名
行会战金币数
沙巴克行会头名
沙巴克行会名
升级武器价格
放在对话框里的武器名字
把变量转换为字符型 copyright dedecms

织梦好,好织梦
check[]check[111]1检测111是否为1
checkunit
checkopen
randomrandom6产生一个小与6的随机整数
gender检测性别
daytime
checklevelchecklevel10检测等级是否大于10
checkjobcheckjobwizard检测职业
checkitem检测物品
checktiemw
checkgoldcheckgold1000检测身上的钱是否大于1000
istakeitem
checkdura物品的持久
checkduraeve
dayofweek中的时间
hour
min
checkpkpointcheckpkpoint2检测人物PK值是否大于2
checkluckpoint检测人物幸运数
checkmonmap
checkmonarea
checkhum检测地图是否有玩家
checkckbaggage
checknamelist
equalequald12检测变量d1是否等于2
largelarged12检测变量d1是否大于2
smallsmalld12检测变量d1是否小于2
set[]set[111]1
reset
setopen
setunit
resetunit 内容来自dedecms
taketake物品数量
givegive物品数量
takew
close
mapmove
map
breakbreak
timerecall
breaktimerecall
param1
param2
param3
param4
takecheckitem
mongen
monclear
movmovd11
incincd11
decdecd11
sumdecd11
movrmovrd16
exchangemap
recallmap
addbatch
batchdelay
batchmove
playdice掷色子
addnamelist
delnamelist
goquest
endquest
goto
#call[]
#act
goto
#sethome
#define
#include
definestxt
@home
@main
#if
#act
#elseact
{quest***
{~quest[]***
#rand
[goods]
#say
#elsesay
$pricerate
$upgradeweapenfee
$userweapon
@s_repair
@buy
@sell
@repair
@makedrag
@prices
@storage
@getback
@upgradenow
@getbackupgnow
@exit
@@buildguild
@@guildwar
@@donate
@requestcaselewarnow
$castlegold
$todayincome
broken
open 内容来自dedecms
shut
$castledoorstale
$repairdoorgold
$repairwallgold
$guardfee
$guardrule
@@withdrawal
@@receipts
@openmaindoor
@closemaindoor
@repairdoornow
@repairwallnow1
@repairwallnow2
@repairwallnow3
@hireguardnow
@hireguards
@hirearchernow 内容来自dedecms
感谢楼上的提供,给大家转个学习脚本的简单教程(转中箭的神仙)
第一节序言 织梦好,好织梦
很多人都或多或少的接触过服务器端脚本文件,也很想自己制作一点脚本来试试,但又不敢乱碰生怕改坏一点东西造成不能运行端,其实“脚本语言“(我们暂且称他为一种语言)和C语言等等程序语言比起来那真是不值得一提。看完我给大家写的这篇文章后,你就自己偷着乐吧...
可以说服务器端所有的重点都集中在mir200envir中,这里面记载着所有要在游戏中表现的东西。在游戏中的npc信息也在其中,npcs.txt文件和merchant.txt文件中记载着npc的名称、出现的地图、坐标、范围和形象代码。你要问两个记载的npc有什么不同?为什么不和在一起算了?我来告诉你,npcs.txt中记载的npc是对话型npc,在进入后,不能够使用@reloadnpc刷新信息的npc。而merchant.txt是交易型和任务型npc,可以使用@reloadnpc刷新信息。但我也做过试验,两种npc互换后也可以使用,好像没有太大的限制。 本文来自织梦

npcs.txt对应的文件在.npc_def文件夹中,merchant.txt对应的文件在.market_def文件夹中。你如果要添加npc的时候,要注意npc的文件名,例如你要创建一个超级商人的npc要他出现在比奇省330:330的坐标。首先你要在.market_def文件夹中创建一个文本文件命名为“超级商人-0“(这里你可以使用英文,也可以使用中文,但后面的数字必须要是这个npc出现的地图代码!),然后把你写好的脚本粘贴在里面。再打开merchant.txt文件,添加以下信息:
;调用的文件地图坐标x坐标y范围人物代码刷新时间
超级商人0330330050
相信大家可以看懂吧,这里面的空格不要紧,没有规定信息之间必须空几格。人物代码自己换吧,现在的npc有46种模样。
和脚本的规则一样,这两个文件里面以;开头的行就当作注释部分不做编译。 织梦内容管理系统

第2节 内容来自dedecms
现在步入正题,谈谈脚本的制作。
npc脚本分为两种,一种是不做交易的npc,一种是与之交易的npc。我们先来讲不做交易的npc
这类脚本的开头一般以[@main]开头,但并不是必须以他开头,main的英文意思是“主体,主要部分”的意思,所以用他这是个好习惯。
接着就是条件语句#if,和他对应的#act,就是说如果...那么...,我在之前的《脚本语言之不完全公略》一文中提到了一系列的测试语句。#if后面可以跟这个测试语句,比如测试金钱checkgold,测试级别checklevel等等,这些测试语句可以连用,挑选满足这所有值的人。如果你想不要任何条件的话就把他留空,后面直接接#act.
接着就是#act,如果有人满足了上述条件,那么...我们可以使用一些命令应用于他,比如take拿走他身上的什么东西,mapmove把他移动到什么地图,set赋予他什么函数值等等。这些语句你也可以连着使用。后面也可以跟文字,那么就在里面显示为对话。 copyright dedecms

下面是#ELSEACT,如果没有满足#if条件的,就不再运行#act后面的指令,直接运行#ELSEACT后面的指令。后面也可以跟文字,那么就在里面显示为对话。
#say和#elsesay的用法和#act#elsesay的用法相同。
范例:
----------------------------
;传送猪7的npc脚本
[@main]
#if
checkgold10000
checklevel30
#act
take金币10000
mapd717
break
#elsesay
你有10000个金币吗?要不然就是你没有30级。我不能把你传送到猪7了!自己跑吧。
----------------------------
这就是一个极其简单的传送脚本。我们下一节讲稍微复杂的段落脚本。 织梦好,好织梦
第三节 织梦内容管理系统

这一节我们来讲段落脚本。
复杂的脚本需要有数个[@main][@main-1]等等组成,从[@main]到[@main-1]之间称为一个段落,他们之间是由goto命令来衔接的,#if满足条件的话,#act就执行goto@main-1命令,转向[@main-1]段落。值得一提的是goto是脚本自动做出转换段落的命令,还有一种转换段落的方式,那就是要玩家自己选择段落。这部分将在中显示为huang色可以点选的信息,玩家鼠标选择后转向main-1段落。
范例:
----------------------------
;赠送回城卷脚本
[@main]
#if
checkpkpoint2
#act
goto@main-1
#elseact
give回城卷1 织梦好,好织梦

[@main-1]
你是红名啊!别想让我可怜你,你是个十足的恶魔!什么?怒视着我干吗?信不信我现在就让你***?
[@main-2]
#if
#act
Param1t131
Param210
Param3 织梦好,好织梦

帖子地址: 





上一篇:打死怪物系统自动给5000元奖励的详细修改办法
下一篇:私服回档!与删除个人帐号
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【乱回复灌水将给予禁言处理】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则