以下是根据您提供的信息重构的脚本制作变量大全:
```lua
; 测试职业
checkjob (Warr, Wizard, Taos)
; 测试金币
checkgold (金币数)
; 测试等级
checklevel (等级)
; 测试物品及数量
checkitem (物品名) (数量)
; 给钱
give gold (金币数)
; 给物及数量
give (物品名) (数量)
; 拿走钱
take gold (金币数)
; 拿走物及数量
take (物品名) (数量)
; 测试PK值
checkpkpoint (pk值)
; 幸运值正值为好,负值为差
checkluckypoint (幸运值)
; 一般测试矿物等物品的品质
checkduraeva (物品名) (数值)
; 测试这个地图的人数
checkhum (地图名) (数值)
; 测试这个地图的怪物数
checkmonmap (地图名) (数值)
; 移动到这个地图
map (地图名)
; 移动到这个地图指定坐标
mapmove (地图名) (坐标A) (坐标B)
; 地图清除
monclear 地图清除
close 关闭对话框
TimeRecall (设定时间值) ;分钟,一般指进入地图时间限制
BreakTimeRecall ;中断设定时间
ExchangeMap (地图名) ;与指定地图里的人交换位置
daytime sunset ;一天时间检查背包是否满,如果满则返回1,否则返回0。small(背包剩余空间)、large(背包最大容量)、equal(背包当前空间)=背包剩余空间,mov(背包当前空间)=背包剩余空间+要添加的数值,sum(变量A)(变量B)表示A和B的和,注意如果还要加第三个数直接换行写sum(变量C)。注:关于SUM的详解首先有MOV(变量X),(变量X)清0sum(变量A)(变量B);X=A+Bsum(变量C);X=X+Cmovr(变量)(数值);随机把指定数值以下的数(正数)给变量inc(变量)(数值);让变量自动加指定数值到变量playdice(骰子数);@xxx;玩骰子,跳转到标签[@xxx]random(随机数);一般用在#IF语句中作为触发#IF机率,有时随机数=并列#IF语句数用于随机多项选择,既:
请根据提供的内容完成内容重构,并保持段落结构:
```plaintext
#IF RANDOM 3 #SAY() #ELSEACT
#IF RANDOM 3 #SAY() #ELSEACT
#IF RANDOM 3 #SAY() #ELSEACT
Check [条件数] 1 ;测试[条件数]触发与否 1(触发)
SET [条件数] 1 ;设置[条件数]触发
batchDelay (暂停时间) ;一般为1
addbatch (地图名1)
addbatch (地图名2)
addbatch (地图名3)
addbatch (地图名4)
addbatch (地图名5)
batchmove ;一步步到下一个地图直到5
param1 01141 ;01141=(地图名)
param2 10
param3 10
mongen 火焰沃玛2(怪物名) 30 10
;玩骰子脚本解析
#IF
equal p9 1 ;测试 p9是不是等于1
#ACT
goto @cube ;是的,到@cube
BreakTimeRecall (中断设定时间)
break
#IF
equal p9 9 ;测试 p9是不是等于9
#ACT
goto @quit ;是的,到@quit 退出
BreakTimeRecall (中断设定时间)
break
[@main-1]
#IF
#ACT
mov p9 0 ;测试 p9是不是等于0
#SAY
say ;欢迎词
<下一步/@pre_cube>
[@pre_cube]
#IF
checkitem 筹码 1 ;测试有没有筹码
#ACT
mov p9 1 ;有,让p9=1
take 筹码 1 ;给出一个筹码
movr d0 6 ;;随机把6以下的数(正数)给d0
inc d0 1 ;让d0自动加1到d0
playdice 1 @cube ;玩骰子,点击到标签[@cube]
#SAY
正在投骰子. \ <下一个/@cube>
#ELSESAY
quit
<退出/@Quit>
#ELSEACT
mov p9 9 ;转到标签@quit并让P9等于9
[@Quit]
#IF
#ACT
map B011 ;退出到B011地图
[@cube]
#IF
#SAY
骰子的点数 <$STR(D0)> \n;<$STR(D0)>是变量,把D0数值型转字符型
你可以前进 <$STR(D0)> <移动/@next_cube>
[@next_cube]
#IF
equal d0 1 ;如果 d0=1
#ACT
goto @posi1 ;到POSI1
break
#IF
equal d0 2
#ACT
goto @posi2
break
#IF
equal d0 3
#ACT
goto @posi3
break
#IF
equal d0 4
#ACT
goto @posi4
break
#IF
equal d0 5
#ACT
goto @posi5
break
#IF
equal d0 6
#ACT
goto @posi6
break
[@Posi1]
#IF
#ACT
batchDelay 1 ;一般为1(暂停时间)
addbatch B102 ;步进地图名1
batchmove ;移动到最后一个步进地图
[@Posi2]
#IF
#ACT
batchDelay 1
addbatch B102
addbatch B103
batchmove
[@Posi3]
#IF
#ACT
batchDelay 1
addbatch B102
addbatch B103
addbatch B104
batchmove
[@Posi4]
#IF
#ACT
batchDelay 1
addbatch B102
addbatch B103
addbatch B104
addbatch B105
batchmove
[@Posi5]
#IF
#ACT
batchDelay 1
addbatch B102
addbatch B103
addbatch B104
addbatch B105
addbatch B106
batchmove
[@Posi6]
#IF
#ACT
batchDelay 1 ;一般为1(暂停时间)
addbatch B102 ;步进地图名1
addbatch B103 ;步进地图名2
addbatch B104 ;步进地图名3
addbatch B105 ;步进地图名4
addbatch B106 ;步进地图名5
addbatch B107 ;步进地图名6
batchmove ;移动到最后一个步进地图(这里是6)
```markdown## ELSE(ACT)
ELSE的两句是并列的,都是IF条件的动作。
# ELSEACT(SAY)
在这里添加你想要执行的操作。
## 跳转到指定标签名
goto (标签名)
break (中断)
\ ;换行
<xxx/@xxx>
变量:
<$USERNAME> 当前用户名
<$GUILDWARFEE>行会战金币数
<$LORD>沙巴克行会头名
<$OWNERGUILD>沙巴克行会名
<$UPGRADEWEAPONFEE>升级武器价格
<$USERWEAPON> 放在对话框里的武器名字
<$STR(变量)> 把变量转换为字符型
check [ ] check [111] 1 检测111是否为1
checkunit
checkopen
random random 6 产生一个小与6的随机整数
gender 检测性别
daytime
checklevel checklevel 10 检测等级是否大于10
checkjob checkjob wizard 检测职业
checkitem检测物品
checktiemw
checkgoldcheckgold 1000检测身上的钱是否大于1000
istakeitem
checkdura 物品的持久
checkduraeve
dayofweek 游戏中的时间
hour
min
checkpkpointcheckpkpoint 2检测人物PK值是否大于2
checkluckpoint检测人物幸运数
checkmonmap
checkmonarea
checkhum 检测地图是否有玩家
checkckbaggage
checknamelist
equalequal d1 2检测变量d1是否等于2
largelarge d1 2检测变量d1是否大于2
smallsmall d1 2检测变量d1是否小于2
set [ ]set [111] 1
reset
setopen
setunit
resetunit
taketake 物品 数量
givegive 物品 数量
takew
close
mapmove
map
breakbreak
timerecall
breaktimerecall
param1
param2
param3
param4
```
include
#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
shut
$castledoorstale
$repairdoorgold
$repairwallgold
$guardfee
$guardrule
@@withdrawal
@@receipts
@openmaindoor
@closemaindoor
@repairdoornow
@repairwallnow1
@repairwallnow2
@repairwallnow3
@hireguardnow
@hireguards
@hirearchernow
传奇服务器端的所有核心内容都集中在\mir200\envir\目录中,这个目录记录了服务器在游戏中需要展示的所有元素。在这个目录下有两个文件,一个是npcs.txt,另一个是merchant.txt,它们分别记录着NPC的信息。npcs.txt文件中记录的是对话型NPC(即进入游戏后无法通过@reloadnpc刷新信息的NPC),而merchant.txt文件中记录的是交易型和任务型NPC(可以通过@reloadnpc刷新信息)。实际上,这两种类型的NPC互换使用也是可以的,没有太大限制。
npcs.txt文件位于
pc_def目录下,而merchant.txt文件则位于\market_def\目录下。如果你想要添加一个新的NPC,首先要注意NPC的文件名。例如,如果你想要创建一个出现在比奇省330:330坐标位置的超级商人NPC,你需要在\market_def\目录下创建一个名为“超级商人-0”的文本文件(你可以将文件名改为英文或中文,但后面的数字必须与该NPC出现的地图代码相匹配!),然后将你的脚本粘贴到文件中。接下来,打开merchant.txt文件,在文件中添加以下信息:
; 调用的文件 地图 坐标x 坐标y 范围 人物代码 刷新时间
超级商人 0 330 330 0 5 0
请注意,这里的空格并不重要,因为并没有规定信息之间必须空几格。此外,你可以根据需要更改人物代码,目前共有46种不同的NPC外观可供选择。
现在让我们来谈谈脚本的制作。npc脚本主要分为两种类型:一种是不与玩家进行交易的NPC,另一种是与玩家进行交易的NPC。我们先来讲解不与玩家进行交易的NPC。这类脚本通常以[@main]开头,但并非必须如此。"main"一词的英文意思是“主体,主要部分”,因此使用它是一个很好的习惯。
接下来是条件语句#if和对应的#act。#if用于表示条件,而#act则是当条件满足时执行的操作。在《脚本语言之不完全公略》一文中,我曾介绍过一系列测试语句。#if后面可以跟这些测试语句,例如checkgold(检查金钱)、checklevel(检查等级)等。这些测试语句可以连续使用,以筛选出满足所有条件的人。如果你不需要任何条件限制,可以直接留空#if后面的部分,并直接接#act。
接下来是#act部分,如果有人满足了上述条件(即拥有10000金币且等级达到30级),那么我们可以使用一些命令应用于他,例如拿走他身上的金币、将他移动到地图d717等。这些命令可以连续使用。在传奇游戏中,这些指令将以对话的形式显示。
紧接着是#elseact部分,如果没有满足#if条件的玩家,将不再运行#act后面的指令,而是直接运行#elseact后面的指令。同样,这部分指令也可以以对话的形式显示。
#say和#elsesay的用法与#act和#elseact相同。
以下是一个简单的传送脚本示例:
```markdown
; 传送猪7的npc脚本
[@main]
#if
checkgold 10000
checklevel 30
#act
take 金币 10000
map d717
break
#elsesay
你有10000个金币吗?要不然就是你没有30级。我不能把你传送到猪7了!自己跑吧。<关 闭/@exit>
```
在下一节课中,我们将讲解更复杂的段落脚本。
以下是根据您提供的内容重构的内容:
Param1: t131
Param2: 10
Param3: 未知
请注意,由于您没有提供Param3的具体信息,我们无法确定它的值。如果您能提供更多关于Param3的信息,我们将能够更好地帮助您完成内容重构。