传奇帮论坛

 找回密码
 注册帐号
查看: 10575|回复: 122

传奇帮83课-合成和变量教程

  [复制链接]

4649

主题

5773

帖子

598万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5989958
发表于 2017-3-26 13:45:39 | 显示全部楼层 |阅读模式
大家好,欢迎收看传奇帮技术视频教程

教程下载:http://pan.baidu.com/s/1hsmP7ko

D:\mirserver\Mir200\Envir\MonUseItems    人形怪数据库
D:\MirServer\Mir200\Envir\AdminList.txt  GM名单数据库
D:\MirServer\Mir200\Command.ini          GM命令数据库
D:\MirServer\Mir200\Notice               传奇公告数据库
D:\MirServer\Mir200\GuildBase            行会文件数据库
D:\MirServer\DBServer\FDB                任务数据库
D:\MirServer\LoginSrv\IDDB               ID数据库
D:\MirServer\Mir200\!Setup.txt           修改经验库
D:\MirServer\Mir200\Envir\MonGen.txt     刷怪数据库
D:\Mirserver\Mir200\Envir\MonItems       爆率数据库
D:\mirserver\Mir200\Envir\market_def\Qfunction-0.txt   功能脚本,触发脚本
D:\mirserver\Mir200\Envir\MapInfo.txt    地图数据库
D:\Mirserver\Mir200\Envir\MerChant.TXT  加NPC路径
D:\MirServer\Mir200\Envir\market_def    NPC脚本
D:\mirserver\Mir200\Envir\LevelOrder    传奇排行版数据
D:\MirServer\Mir200\Envir\StartPoint.txt  传奇地图复活点
D:\mirserver\Mir200\Envir\MiniMap.txt    传奇小地图配置
D:\Mirserver\Mir200\Envir\MapQuest_def   地图加经验脚本
D:\MirServer\Mir200\Envir\Boxs           开箱子数据
D:\MirServer\Mir200\Envir\QuestDiary    登陆设置  新手背包物品 等
D:\Mirserver\Mir200\Envir\HintItemList.txt   LEG物品掉落提示文件
D:\mirserver\Mir200\Envir\QuestDiary   关联数据库
D:\MirServer\LoginSrv\!addrtable.txt     多线路添加
D:\Mirserver\Mir200\Envir\UserCmd.txt    自定义命令 对应的脚本是QFunction-0.txt
D:\Mirserver\Mir200\Envir\MapQuest_def\QManage.txt   登录脚本
D:\Mirserver \Mir200\Envir\SuiteItemsList.txt    LEG装备属性
D:\mirserver\Mir200\Envir\StartPoint.txt      安全区光环



示范脚本

[@main]
两把裁决之杖可以合成一把屠龙。\
你是否要合成呢?\ \
<我要合成/@合成>\


[@合成]
#if
checkitem 裁决之杖 2
#act
take 裁决之杖  2
give  屠龙  1
SENDMSG 0  玩家:<$USERNAME>,在传奇帮处合成了[屠龙]一件!
break
#elseact
messagebox 你没有两把裁决之杖,不能合成屠龙。











dayofweek sun      星期天
dayofweek mon      星期一
dayofweek tue      星期二
dayofweek wed      星期三
dayofweek thu      星期四
dayofweek fri      星期五
dayofweek sat      星期六

变量解析
一.标识

[001]-[499](各引擎不同标识的上限值不能。正常的是499个),这不是变量,这是标识
标识的初始值是关闭的,它不会因为人物下线或服务器重启而重置
相关命令格式:
Check [001] 0 的意思是检测你的标识[001]是否关闭
SET [001] 1 的意思是设置你的标识[001]为开的状态

1.关于reset命令的详解:
reset [XXX] 7 意思是将从XXX开始的7个变量回复到原始值0
比如:reset [100] 7 就是把100 101 102 103 104 105 106 107这7个变量赋值为0。
它等同与:set [100] 0
set [101] 0
set [102] 0
set [103] 0
set [104] 0
set [105] 0
set [106] 0

二.变量

P0-P99 (私人变量,数字型) 关闭对话框重置为0。
D0-D99 (私人变量,数字型) 不可保存。
M0-M99 (私人变量,数字型) 不可保存。
N0-N99 (私人变量,数字型) 不可保存。
S0-S99 (私人变量,字符型) 不可保存。
I0-I99 (全局变量,数字型) 不可保存,服务器重启自动重置为0。
G0-G99 (全局变量,数字型) 可保存。
A0-A99 (全局变量,字符型) 可保存。

变量与数字之间的常用格式:

small G88 5 ;检测变量G88,是否小于5
large G88 5 ;检测变量G88,是否大于5
equal G88 5 ;检测变量G88,是否等于5
mov G88 5 ;设置G88=5
INC G88 5 ;设置变量G88=G88+5
DEC G88 5 ;设置变量G88=G88-5   减少值,DEC  1 就是减1
MUL G88 5 ;设置变量G88=G88*5
DIV G88 5 ;设置变量G88=G88/5
PERCENT G88 5 ;设置变量G88=G88/5*100%

变量与变量之间的常用格式:

small M88 <$STR(G88)> ;检测私人变量M88,是否小于全局变量G88
large M88 <$STR(G88)> ;检测私人变量M88,是否大于全局变量G88
EQUAL M88 <$STR(G88)> ;检测私人变量M88,是否等于全局变量G88
mov G88 <$STR(M88)> ;设置全局变量G88=M88
inc G88 <$STR(M88)> ;设置全局变量G88=G88+M88
DEC G88 <$STR(M88)> ;设置全局变量G88=G88-M88
MUL M88 $STR(M89) ;设置私人变量M88=M88*M89
DIV M88 $STR(M89) ;设置私人变量M88=M88/M89
PERCENT M88 $STR(M89) ;设置私人变量M88=M88/M89*100%

Small、Large、Equal、mov、INC、DEC、MUL、DIV、PERCENT 支持第3参数,例:
#IF
LARGE N1 <$STR(P0)> <$STR(M5)> //检测表达式为: N1 > ( $STR(P0) * $STR(M5) ) ,即检测N1是否大于( $STR(P0) 乘以 $STR(M5) )
用法类似:GameGold - <$STR(P0)> <$STR(M5)>

其他变量命令:
1.关于SUM命令的详解:
首先有MOV (变量X) 0 ;(变量X)清0
sum (变量A) (变量B) ;X=A+B
sum (变量C) ;X=X+C
2.关于movr命令的详解:
movr (变量) (数值) ;随机把指定数值以下的数(正数)给变量
3.DEC特殊用法
支持A,S变量的DEC操作,格式:DEC A0 X Y
其中X,Y表示位置,操作的结果:删除A0字符串中从X开始到Y结束之间的字符
以下操作去掉“ABCDEFGHIJK”
MOV S0 屠龙ABCDEFGHIJK刀
DEC S0 5 15

三.自定义变量
注意: 自定义变量不要以P、G、M、I、D、N、S、A开头

说明

数据类型

Integer 整型

String 字符串

变量类型

HUMAN 个人变量

GUILD 行会变量

GLOBAL 公共变量

自定义变量与数字之间的常用格式:

CHECKVAR HUMAN 自定义变量 > 5 ;检测[自定义变量]是否大于5
CHECKVAR HUMAN 自定义变量 = 5 ;检测[自定义变量]是否等于5
CHECKVAR HUMAN 自定义变量 < 5 ;检测[自定义变量]是否大于5
CALCVAR HUMAN 自定义变量 = 5 ;设置[自定义变量]=5
CALCVAR HUMAN 自定义变量 + 5 ;设置[自定义变量]=[自定义变量]+5
CALCVAR HUMAN 自定义变量 - 5 ;设置[自定义变量]=[自定义变量]-5

自定义变量与变量之间的常用格式:

MOV M88 <$HUMAN(自定义变量)> ;设置变量M88=[自定义变量]
CALCVAR HUMAN 自定义变量 = <$STR(M88)> ;设置[自定义变量]=变量M88
CALCVAR HUMAN 自定义变量 + <$STR(M88)> ;设置[自定义变量]=[自定义变量]+变量M88
CALCVAR HUMAN 自定义变量 - <$STR(M88)> ;设置[自定义变量]=[自定义变量]-变量M88







个人变量

公有和私有变量

自定义变量


G0-G99 全局变量(数字型) 可保存

A0-A99 全局变量(字符型) 可保存

M0-M99 私人变量(数字型) 不可保存

I0-I99 全局变量(数字型) 不可保存

D0-D9 私人变量(数字型) 不可保存

N0-N99 私人变量(数字型) 不可保存

S0-S99 私人变量(字符型) 不可保存

P0-P9 私人变量(数字型) 不可保存


reset [x]  1   将X开始的连续1个变量状态设置为0    个人
reset G11  2  将g11开始的连续2个变量状态设置为0   全局

check (变量) (数值) 检测变量是否等于某数值
set   (变量) (数值) 给予指定变量一个数值
inc   (变量) (数值) 加指定数值到变量
small (变量) (数值) 检测变量是不是小于指定数值
large (变量) (数值) 检测变量是不是大于指定数值
equal (变量) (数值) 检测变量是不是等于指定数值



<$STR(x)> 显示当前变量的数值 X等于变量的数值



check [123]   0      检测个人变量   123  是不是等于零

set   [123]   1      给予个人变量    123   + 1


以下脚本展示。。。。

[@main]
每人领取一次金条\
<领取/@lq>  <离开/@exit>\

[@lq]
#if
check [123]  0    -------检测123变量值是不是0       变量值000-499可自由选择,不能跟其它脚本变量值相同。
#act
give 金条
set [123]  1    -----------增加123变量值1
#ELSESAY        ----------条件不满足就执行以下语句。
对不起,你已经领取过了。




升级奖励展示
[@main]
升级10级赠送1个金条,10个名额,已经领取【<$STR(G11)>】个名额。\
升级20级赠送1个金砖,10个名额,已经领取【<$STR(G12)>】个名额。\

<领取10级奖励/@10级>  <领取20级奖励/@20级>\


[@10级]
#if
CHECKLEVELEX > 9    -----检测等级超过9级
small G11  10      ------检测G11变量值是不是小于10  10代表可领取数  G0-G99可自由选择,不要和其它变量值相同
check [122]  0     -----检测个人变量122 是不是0  变量值000-499可自由选择,不能跟其它脚本变量值相同。
#act
give 金条  
inc  G11          ----增加全局G11变量值  增加1 ,也可以 inc  G11   2 ,就是加2,没写2就是默认加1点
set [122]  1     -----增加个人122变量值 +1  (那么领取过的人就加1,如果再次领取就不能满足check [122]  0)了
break
#elseact
messagebox 你未达到要求,或者名额已满。
close


解释如上:


[@20级]
#if
CHECKLEVELEX > 19
small G12  10      
check [124]  0
#act
give 金条  
inc  G12
set [124]  1
break
#elseact
messagebox 你未达到要求,或者名额已满。
close









1、首先要声明变量

2、读取变量

3  对变量进行编辑 可以 加 减 等等等....

4、保存变量



公有    GLOBAL

私有    HUMAN


Integer   数字型

String    字符型


1.声明变量


VAR Integer 公有/私有 变量名称 数字型

VAR String 公有/私有 变量名称 字符型

2.读取变量


LOADVAR 公有/私有 变量名称 ..\QuestDiary\某某目录\某某.txt


3.修改变量

CALCVAR 公有/私有 变量名称 + - * / =      脚本命令CALCVAR支持对变量进行+ - * / =五种操作


4、保存变量

SAVEVAR 公有/私有 变量名称 ..\QuestDiary\某某目录\某某.txt


检测变量

CHECKVAR 公有/私有 变量名称 > < =     脚本命令CHECKVAR支持对变量进行 > < = 三种操作


查看变量

<$公有/私有(变量名称)>



















示例
[@main]
\ \
在我这里每天可以领取一根金条\
但不能重复领取,如果你连续领取一个礼拜的金条,\
礼拜天便能领取一个金砖。\
<星期一金条/@星期一金条> <星期二金条/@星期二金条> <星期三金条/@星期三金条> <星期四金条/@星期四金条>\
<星期五金条/@星期五金条> <星期六金条/@星期六金条> <星期天金条/@星期天金条> <每周领金砖/@每周领金砖>

[@星期一金条]
#if
dayofweek mon
check [601] 0
#act
give 金条 1
set [601] 1
break
#elseact
messagebox 没到星期一或你已经领取了星期一的奖励。
[@星期二金条]
#if
dayofweek tue
check [602] 0
#act
give 金条 1
set [602] 1
break
#elseact
messagebox 没到星期二或你已经领取了星期二的奖励。
[@星期三金条]
#if
dayofweek wed
check [603] 0
#act
give 金条 1
set [603] 1
break
#elseact
messagebox 没到星期三或你已经领取了星期三的奖励。
[@星期四金条]
#if
dayofweek thu
check [604] 0
#act
give 金条 1
set [604] 1
break
#elseact
messagebox 没到星期四或你已经领取了星期四的奖励。
[@星期五金条]
#if
dayofweek fri
check [605] 0
#act
give 金条 1
set [605] 1
break
#elseact
messagebox 没到星期五或你已经领取了星期五的奖励。
[@星期六金条]
#if
dayofweek sat
check [606] 0
#act
give 金条 1
set [606] 1
break
#elseact
messagebox 没到星期六或你已经领取了星期六的奖励。
[@星期天金条]
#if
dayofweek sun
check [607] 0
#act
give 金条 1
set [607] 1
break
#elseact
messagebox 没到星期天或你已经领取了星期天的奖励。
[@每周领金砖]
#if
dayofweek sun
check [601] 1
check [602] 1
check [603] 1
check [604] 1
check [605] 1
check [606] 1
check [607] 1
#act
reset [601] 7
give 金砖 1
break
#elseact
messagebox 你已经领取了每周金砖或者你没有连续领取每日的金条。

看到这里相信大家已经明白了,
reset [601] 7
的功能其实就等同于
set [601] 0
set [602] 0
set [603] 0
set [604] 0
set [605] 0
set [606] 0
set [607] 0

其实细心的朋友会发现,这个脚本有一个很大的漏洞。
如果你发现了,可以谈谈你的解决办法。

领取星期天的奖励,签到满7天的奖励后,清除了之前所有的变量
等于说星期天的变量也没了,那么也可以领取一次了。
QQ截图20170326134718.jpg


承接各类传奇业务QQ1078080188
帮币在论坛左上角充值,租服务器送4千帮币
回复

使用道具 举报

0

主题

1万

帖子

4万

积分

工务使

Rank: 4

积分
45782
发表于 2017-8-14 21:53:03 | 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

0

主题

1万

帖子

2万

积分

工务使

Rank: 4

积分
21744
发表于 2017-8-14 21:53:23 | 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

0

主题

1万

帖子

4万

积分

工务使

Rank: 4

积分
45782
发表于 2017-8-14 22:05:06 | 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

0

主题

1万

帖子

2万

积分

工务使

Rank: 4

积分
21744
发表于 2017-8-14 22:05:26 | 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

0

主题

1万

帖子

4万

积分

工务使

Rank: 4

积分
45782
发表于 2017-8-15 03:22:30 | 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

0

主题

1万

帖子

2万

积分

工务使

Rank: 4

积分
21744
发表于 2017-8-15 03:22:50 | 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

0

主题

1万

帖子

4万

积分

工务使

Rank: 4

积分
45782
发表于 2017-8-15 03:35:28 | 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

0

主题

1万

帖子

2万

积分

工务使

Rank: 4

积分
21744
发表于 2017-8-15 03:35:48 | 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

0

主题

1万

帖子

4万

积分

工务使

Rank: 4

积分
45782
发表于 2017-8-15 16:56:45 | 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

小黑屋|传奇帮论坛

GMT+8, 2024-11-21 23:52 , Processed in 0.070105 second(s), 29 queries .

快速回复 返回顶部 返回列表