当前位置 :| 主页>传三>技术文章>

最新最全传三脚本程序语句与程序段

来源: 作者: 点击:
换一行
换二行
{图像类别图像定位} ;图像类别是说明动物或npc图像定位是指那一个具体图像
[@段] ;段用英文或数字表示
goto @段 ;跳转到指定段,开始执行相当于b中的goto语句
选择项目@段 ;选择项目后转称到指定段,相当于c中的case语句
#IF
#SAY 语句 ;语句设定为字符,不用加任何定界符
#ACT 执行命令 ;符合3.0规定的任何系统已定义命令
#ELSEACT
#ELSESAY
@exit ; 关闭对话框
close ;由程序执行@exit
break
Delaygoto [Grobal] 120 @段 ;120秒后进入@段
==============================================
---------------------- 程 序 中 的 变 量 与 常 量 ------------------------
==============================================

变量 ;变量用字母表示,在程序中可以赋任何数据 名称只限于A0-A9字符型 B0-B9字符型 D0-D9数字型 P0-P9数字型
S0-S9数字型

服务器共享变量 N0-N9 数字型 B1-B9 字符型
#Define N0{START} N0
#Define N1{WEDDING} N1
#Define N3{TIME} N3
#Define N4{TRY} N4
#Define N5{WAITINGTIMEOUT} N5
#Define N6{MAN} N6
#Define N7{GIRL} N7
#Define B1{MANNAME} B1
#Define B2{GIRLNAME} B2
#Define B3{INPUTGIRLNAME} B3
mov 变量 数值 ;给变量赋值 A0-A9字符型 B0-B9字符型 D0-D9数字型
mov A0 字符
mov D0 数字
inc 变量 数值 ;让变量自动加指定数值到变量,相当于程序中的x=x+n
dec 变量 数值 ;让变量自动减指定数值到变量,相当于程序中的x=x-n
sum 变量a 变量b ;变量求和不要与int混淆,需要下面的组合语名才能实现
mov 变量x 0 ;变量x,初值
sum 变量a 变量b ;x=a+b
sum 变量c ;x=x+c 最后在程序中得到的是x值,实际x=a+b+c
;如果只写中间一句是无意义的,只能导致错误
movr 变量 数值 ;定义随机变量,变量值为 0 到 数值
random 数值 ;当数值=随机数时则为1否则为0
$str(变量) ;显示变量时用,可以将变量值显示在游戏里,用在 #say后面
=================================================
------------------------- 程 序 中 的 逻 辑 判 断 语 句 ------------------------
=================================================
[n] ;n为任何正整数,是逻辑变量,有0值和1值,初始0值
#IF

#ACT

#SAY

#ELSEACT

#ELSESAY

=====================
#IF
not CheckItem 钢玉石 1 ;注意这里的not用法
or not CheckGold 10000 ;注意这里or 的用法 还有 and
#ACT

============
set [n] 1 ;设置逻辑变量为真
check [n] 1 ;测试逻辑变量是否为真,可以测试是否已经完成了任务
small 变量 数值 ;如果“变量 数值”则为1否则为0 数值比较
esmall 变量 数值 ;如果“变量 =数值”则为1否则为0 字符比较
large 变量 数值 ;如果“变量 数值”则为1否则为0 数值比较
elarge 变量 数值 ;如果“变量 = 数值”则为1否则为0 字符比较
equal 变量 数值 ;如果“变量 = 数据”则为1否则为0
checkjob warr(wizard、taos) ;测试职业 是为1否则为0
checkgold 数值 ;拥有金币数=数值为1否则为0
checklevel 数值 ;人物等级=数值为1否则为0
checkitem 物品 数值 ;测试包裹物品的数量
checkitemw 物品 ;检测身上所带的物品
gender man ;测试性别为男,如果为男则为1否则为0
checkbaggage ;测试背包是否已满,满时为1否则为0
checkpkpoint 数值 ;数值为pk值,pk值数值时为1否则为0
checkluckypoint 数值 ;测幸运值
checkmagic 技能名称 ;检测已经修炼的技能
chkmagiclevel ;检测技能等级
checkduraeva (物品名) (数值) ;一般测试矿物等物品的品质 checkduraeva 钢玉矿石 10
checkhum (地图名) (数值) ;测试这个地图的人数
checkmonmap (地图名) (数值) ;测试这个地图的怪物数
checkmonrecall ;检测宠物
checkhorse ;检测是否有马
checkweaponlevel ;检验手持武器等级

addnamelist添加玩家名到xx文本文件中
checknamelist检查玩家名是否在xx文本文件中
delnamelist从xx文本文件删除玩家名

=================================================
------------------------- 商 人 用 npc 开 头 解 释 部 分 -----------------------
=================================================
%100 代表买东西是原价格还是双倍价格
+40 买肉
+1 卖肉
+43 武器有关(修)
+15 头盔
+10 买衣服
+11 修衣服
+26 修手镯类
+0 买各种药水
+42 卖各种药水
+30 蜡烛等
+25 特殊水
+3 买卷轴,书类
+4 卖书类
+19 项链
+20 项链
+21 项链
+22 买戒指
+23 卖戒指
+24 买手镯
+26 卖手镯
+5 修炼武器或买武器
+6 修炼武器或卖武器
=================================================================================
changegender ;改变性别 后面不用跟任何字符使用changegender即可改变执行脚本的角色性别
Map 地图名 ;移动到这个地图的随机坐标,地图名为地图的数字编码
Mapmove 地图名 坐标x 坐标y ;移动到这个地图指定的坐标
Monclear 地图代码 ;清除这个地图上刷的怪物
MonGenP RUSH1,40,40,30 诺玛法老 16 ;刷怪物
MonGenP RUSH1,40,40,30 大法老 4 ;刷怪物
Timerecall 数值 ;数值为分钟,定义进入某地图的时间限制
Breaktimerecall ;中断上面那个语句设定的时间
Hairstyle 数值 ;改变发型
Haircolor 红值 绿值 蓝值 ;值域为0 " 255 设定头发颜色
Give 金币 (金币数) ;给钱
Give (物品名) (数量) ;给物及数量
Take 金币 (金币数) ;拿走钱
Take (物品名) (数量) ;拿走物及数量
Takew 物品 ;直接从身上回收物品
Exchangemap (地图名) ;与指定地图里的人交换位置
Daytime sunset ;一天时间
Speak %A0 ;白色字全服讲话
lineMsg [Grobal] %A0 ;红色字全服讲话
LineMsg Grobal %A0 ;
LineMsg Island02 %A0 ;
LineMsg Island02 内容 ;
ChangeMapAttr 3 SAFE ;
SetAreaAttr 3, 206, 159, 6 NoFly ;
SetAreaAttr 3, 206, 159, 10 NoLack ;
CheckHum Island02 100 125 125 1 ;
Delaygoto [Grobal] 120 @段 ;120秒后进入@段
MonClear Island02 猿猴战士 ;
MapTing Island02 01 100 130 ;
MapTing Island02 Island02 100 133 ;
MonGenP Island02,100,130,5 聚宝箱4 1 noitem,金币,100000
SendCmd Island02, 95, 135, 5 生存游戏场美眉 Show
FormatStr noitem,金币,%s 5000000 ;
Addstr A3 %A2 ;
SetAreaAttr 02, 400, 400, 500 NoLack
MongenP 02,225,240,20 年兽 10 ;
ApplyMonMission 02,225,240,9999 年兽 02,256,201
SetAreaAttr 02, 400, 400, 500 Clear
=================================================
------------------------- ========地图(MAPINFO)======== ------------------------
=================================================
FIGHT ;战斗区域(如果设FIGHT3 ,就是行会地图常设定的可复活三次.)
SAFE ;安全区域
DARK ;地图是黑暗的
NEEDHOLE ;是否需要洞,配合mapinfo里 xx,xx - yy,yy使用
;(MONSTER 任何怪物RACE代码设为95都可
;xx,xx为进入洞口坐标,在Mongen.txt里xx坐标刷新一怪物即可)
NORECALL ;不能用天地合一命令的地图
NORECONNECT(D1601) ;重新连线就被传送到(D1601)中指定的地图
NORANDOMMOVE ;不能用随机的地图
NOPOSITIONMOVE ;不能使用传送戒指的传送指令传送的地图
NODRUG ;不能使用任何药物和卷轴等物品(可用来编不能补血等闯关脚本)
NEEDSET_ON(变量) ;判断是否符合变量 =1 满足 =0 否(配合mapinfo使用可扩展脚本内容.
;如增加某个条件,完成任务后才允许进入某地图.
MINE ;金属矿
MINE2 ;石矿
HORSE ;可骑马
DAY ;地图全亮
FOG ;起雾
NOSPACEMOVE ;不能用回城卷

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

daytime sunset ;日落
daytime sunraise ;日出
daytime day ;白天
daytime night ;夜晚
GETDATE ;获取日期
YEAR ;检测年份
MONTH ;检测月份
DATE ;检测日期
HOUR ;检测小时
MINUTE ;检测分钟
SECOND ;检测秒
===========
#IF
MONTH 4 5
DATE 15 20 ;如果在4月15日----5月20日(范围)满足条件
#ACT

===========
#ACT
MOV P1 9
MOV P2 8
MUL P1 P2
MOV D1 %P9
上面完成的是乘法运算,结果给P9然后给D1

#ACT
MOV P1 10
MOV P2 2
DIV P1 P2
MOV D1 %P9
上面完成的是除法运算,结果给P9然后给D1

#ACT
MOV A0 某某
SYSMSG (!) 获得10000经验
GIVEEXP %A0 10000 ;个人给经验

GIVEEXPMAP Z010 100 ;地图全体给经验无武器修炼值

========
%USERGOLD 获得玩家金钱
%USERID 获得玩家ID
%USERMAP 获得玩家所在地图
%USERNAME 获得玩家名字
%USERX 获得玩家所在地图X坐标
%USERY 获得玩家所在地图Y坐标

#ACT
mov A3 %USERGOLD
#SAY
$OUTPUT(A3)

=====
CHECKACCESSORY 检验附加值
CHECKARMOR 检验铠甲
CHECKBAGGAGE 检验装备
CHECKBONUS 检验奖金,红利
CHECKCASTLEDOOR 检验城门
CHECKCASTLEDOOROPEN 检验城门打开
CHECKDAILYQUEST 检验每日任务
CHECKDURA 检验
CHECKDURAEVA 检验
CHECKDURAW 检验
CHECKENTERGMEMAP 检验
CHECKFAME 检验声望
CHECKGMETERM 检验
CHECKGOLD 检验金币
CHECKGROUPCOUNT 检验组队数
CHECKHORSE 检验马匹
CHECKHUM 检验
CHECKITEM 检验物品
CHECKITEMW 检验
CHECKJOB 检验职业
CHECKLEVEL 检验等级
CHECKMAGIC 检验技能
CHECKMARRIAGE 检验结婚
CHECKMARRIAGERING 检验
CHECKMONMAP 检验
CHECKMONRECALL 检验怪物收回
CHECKNAMELIST 检验名字目录
CHECKOPEN 检验打开
CHECKOPENGME 检验
CHECKPKPOINT 检验PK值
CHECKPOS 检验
CHECKREFINEITEM 检验精练物品
CHECKREFINEWEAPON 检验精练武器
CHECKRIDING 检验骑马
CHECKSAVEDSHOOTER 检验存的攻城武器
CHECKSERVER 检验服务器
CHECKSHOOTER 检验攻城武器
CHECKSOLDITEMSUSERMARKET 检验
CheckSum = 检验
CheckSum 检验
CHECKUNIT 检验个体小组
CHECKWEAPONATOM 检验武器原子,碎片
CHECKWEAPONLEVEL 检验武器等级
CHECKWEAPONMCTYPE 检验

NOCHAT 不能聊天
NODRUG 不能吃药
NOFLY 不能飞
NOFREEFLY 不能自由飞
noitem 不能物品
NOLACK
None
NOPOSITIONMOVE
NORANDOMMOVE 不能随便移动
NORECALL 不能恢复
NORECONNECT
NOREVIVAL 不能复活
NORFLY
Normal Mode
NOSPACEMOVE 不能地位移动
NOSPELL 不能魔法



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




第一节 npc的创建
1、npc文件的位置
所有NPC文件都是存在Mud3EnvirMarket_Def目录。
比如:导游-0.txt 这个文件,就是npc导游,这里的"导游"就是npc设别码,"-0"代表是在比奇出现这个npc。
2、npc刷新文件
所有NPC刷新在Mud3Envirmerchant.txt文件中。
我们打开merchant.txt,查找刚才导游-0.txt的这个npc的装载配置如下。
==============================================================================
导游 0 171 228 『导游』_英美 0 88
==============================================================================
各字段说明如下:
导游——npc设别码
0——比奇
171——坐标x
228——坐标y
即在坐标171,228装载导游npc。
『导游』_英美——在游戏中显示的npc名字
0——含义未知
88——npc的外形代码

第二节 npc的代码编写
打开导游-0.txt,代码如下
==============================================================================
;教程
[@main]
#IF
#SAY
欢迎来到传奇学院。\

==============================================================================
上面的NPC代码是最简单的一个脚本,当你点击这个NPC,它将显示“欢迎来到传奇学院。”这句话。按关闭按钮退出对话。
#IF这个就是脚本命令如果的意思,作判断的时候用。
#SAY这个就是脚本命令说的意思,有什么要告诉玩家的话,可以在这里写下。
\这个符号是换行加空行命令
这个符号是换行命令
这里的关闭后面的/@EXIT就是默认的关闭对话框命令写在符号中。
这样一个简单的NPC就做好了。

第三节 脚本的润色
打开导游-0.txt,代码如下
==============================================================================
;教程
[@main]
#IF
#SAY
{FCOLOR/10}欢迎来到{FCOLOR/12}{FCOLOR/1}传奇学院{FCOLOR/12}。\

==============================================================================
还是上面的NPC代码,我们在欢迎来到传奇学院这句话中加入了2组文本颜色代码。
{FCOLOR/10}欢迎来到{FCOLOR/12}这段文本,进入游戏将显示为绿色。
{FCOLOR/1}传奇学院{FCOLOR/12}这段文本, 进入游戏将显示为红色。
其他颜色可以参考这里

第四节 脚本的调试
你必须拥有GM权限。
在你需要刷新的NPC面前输入 "@RELOADNPC" GM命令来重新加载NPC。
这样做的好处是无需重启EISERVER了,特别在调试脚本的时候,非常有用。


〖浅谈脚本的编写和运用2-判断语句〗

IF...SAY...组合判断
==============================================
[@main]
#IF ;如果
... ;条件
#SAY ;条件成立,显示文本
... ;文本
----------------------------------------------
[@main]
#IF ;如果
CHECKLEVEL 60 ;检查等级是否达到60级条件
#SAY ;条件成立,显示下面的文本
你的等级达到60级。 ;你的等级达到60级。
==============================================


IF...SAY...ELSESAY组合判断
==============================================
[@main]
#IF ;如果
... ;条件
#SAY ;条件成立,显示文本1
... ;文本1
#ELSESAY ;条件不成立,显示文本2
... ;文本2
----------------------------------------------
[@main]
#IF ;如果
CHECKLEVEL 60 ;检查等级是否达到60级
#SAY ;条件成立则显示文本1
你的等级达到60级。 ;你的等级达到60级。(显示文本1)
#ELSESAY ;条件不成立则显示文本2
你的等级还没有达到60级。 ;你的等级还没有达到60级。(显示文本2)
==============================================


IF...ACT...组合判断
==============================================
[@main]
#IF ;如果
... ;条件
#ACT ;条件成立,执行事件
... ;事件
----------------------------------------------
[@main]
#IF ;如果
CHECKLEVEL 60 ;检查等级是否达到60级
#ACT ;条件成立则执行下面的事件
GIVE 金币 100000 ;给你100000金币
==============================================


IF...ACT...ELSEACT组合判断
==============================================
[@main]
#IF ;如果
... ;条件
#ACT ;条件成立,执行事件1
... ;事件1
#ELASEACT ;条件不成立,执行事件2
... ;事件2
----------------------------------------------
[@main]
#IF ;如果
CHECKLEVEL 60 ;检查等级是否达到60级
#ACT ;条件成立则执行事件1
GIVE 金币 100000 ;给你100000金币
#ELSEACT ;条件不成立则执行事件2
GIVE 金币 1000 ;给你1000金币
======================================











〖浅谈脚本的编写和运用3-变量〗

变量定义
===============================================
变量用字母表示,在程序中可以赋任何数据 名称限于
A0-A9字符型
B0-B9字符型
D0-D9数字型
P0-P9数字型
S0-S9数字型
===============================================

变量赋值
===============================================
mov D0 1000
mov A0 传奇学院

这里将数字1000赋值给D0,将字符传奇学院赋值给A0。就这么简单。

变量输出
===============================================
$OUTPUT(D0)
$OUTPUT(A0)

这里将D0的值显示。
这里将A0的值显示出来。
===============================================

综合运用
===============================================
[@main]
#IF
CheckLevel 5 ;检查等级是否是5级
#ACT
mov D0 1000 ;将1000金币数值赋值给DO变量
mov A0 传奇学院 ;将字符传奇学院赋值给A0变量
take 金币 1000 ;条件成立,给玩家1000金币
#SAY
欢迎来到$OUTPUT(A0),您的等级达到了5级,奖励您$OUTPUT(D0)金币。
谢谢@exit
#Elseact ;条件不成立
goto [@main1] ;跳转到[@main1]段

[@main1]
#say
欢迎来到$OUTPUT(A0),您的等级还未达到了5级,继续努力。
知道了@exit
================================================
这个简单的脚本实现判断玩家等级是否达到5级,如果条件成立,显示欢迎来到传奇学院,您的等级达到了5级,奖励您1000金币,同时玩家获得1000金币。如果条件不成立,显示欢迎来到传奇学院,您的等级还未达到了5级。
这里引入了goto语句,语法如下。达到脚本的扩展功能。
goto [@段名]












〖浅谈脚本的编写和运用4-运算〗

运算符定义
================================================
inc ;加法运算
dec ;减法运算
mul ;乘法运算
div ;除法运算
================================================

运算语法
================================================
inc 变量 数值 ;将变量值+数值,然后把他们的和再次赋值给变量
dec 变量 数值 ;将变量值-数值,然后把他们的差再次赋值给变量

mul 数值1 数值2 ;完成数值1x数值2,将乘积赋值给变量 %变量3
mov 变量4 %变量3 ;将运算结果 %变量3 赋值给变量4

div 变量1 数值2 ;完成数值1x数值2,将乘积赋值给变量 %变量3
mov 变量4 %变量3 ;将运算结果 %变量3 赋值给变量4
================================================

脚本运算实战
================================================
[@main]
#act
mov D0 10 ;把数值10赋值给D0
inc D0 5 ;将D0加5后的值再次赋值给D0
goto @main1 ;跳转

[@main1]
#act
mov D1 20 ;把数值20赋值给D1
dec D1 4 ;将D1减4后的值再次赋值给D1
goto @main2 ;跳转

[@main2]
#act
mov P1 9 ;把数值9赋值给P1
mov P2 8 ;把数值9赋值给P2
mul P1 p2 ;完成乘法运算P1XP2
mov D2 %P8 ;将P1XP2的值赋值给变量P8并且再赋值给D2
goto @main3 ;跳转

[@main3]
#act
mov P1 100 ;把数值100赋值给P1
mov P2 4 ;把数值4赋值给P2
div P1 P2 ;完成除法运算P1P2
mov D3 %P9 ;将P1P2的值赋值给变量P9并且再赋值给D3
goto @main4 ;跳转

[@main4]
#say
这里演示的是脚本四则运算。
10+5=$OUTPUT(D0)。 ;10+5的运算结果显示。
20-4=$OUTPUT(D1)。 ;20-4的运算结果显示。
9x8=$OUTPUT(D2)。 ;9X8的运算结果显示。
1004=$OUTPUT(D3)。 ;1004的运算结果显示。
知道了@exit



在gam里面的TBL_ABILITY里面是人物等级(FLD_LEVEL),经验(FLD_EXP,FLD_MAXEXP),生命(FLD_HP,FLD_MAXHP),魔法(FLD_MP,FLD_MAXMP)等除了经验和等级...生命和魔法在这里是改不了的.
gamel里的(TBL_CHARACTER)这个表就可以改生命,魔法,破坏什么的相当于银杏加点
FLD_CHARACTER--角色名称
FLD_USERID--角色帐号
FLD_DELETED--角色是否删除
FLD_UPDATEDATETIME--角色创建的时间
FLD_DBVERSION--也不知道干吗的
FLD_MAPNAME--角色所在地图
FLD_CX--角色所在地图X点
FLD_CY--角色所在地图Y点
FLD_DIR--不知道
FLD_HAIR--发型
FLD_HAIRCOLORR--头发颜色
FLD_HAIRCOLORG--头发颜色
FLD_HAIRCOLORB--头发颜色 这3个可以用画画里面找出象素
FLD_SEX--性别 0是男1是女
FLD_JOB--职业0-战士1-法师2-道士
FLD_LEVEL--登入游戏时显示的等级---修改这里没用要改等级在上面的表里
FLD_GOLD--金子哈哈钱
FLD_HOMEMAP--回城点
FLD_HOMEX---回城点坐标X
FLD_HOMEY---回城点坐标Y
FLD_PKPOINT--PK值
下面的好几个表不知道是干吗的知道的请写出来
到了修改人物的地方
FLD_LEVELBONUS--这个是你在银杏加过多少次点
FLD_EXTRAHP--加了多少血10为
FLD_EXTRAMP--加了多少MP
FLD_EXTRAPWRS0--加了多少防御
FLD_EXTRAPWRS1--加了多少魔法防御
FLD_EXTRAPWRS2--加了多少破坏
FLD_EXTRAPWRS3--加了多少自然
FLD_EXTRAPWRS4--加了多少灵魂
FLD_EXTRAPWRS5-11--是加了多少元素5是火11是幻影
FLD_INDEX--是服务器创建的第几个角色
FLD_EXTRAPWRS5(后面简写) 0是物理防御 1是魔法防御 2是破坏 3是自然 4是灵魂 5 火 6 冰 7 电 8 风 9神 10 暗黑 11 幻影


武器:
[Durx][MaxDurx] -- 这是指物品的持久
[FLD_Desc0] 攻击
[FLD_Desc1] 魔法
[FLD_Desc2] 准确
[FLD_Desc3] 道术
[FLD_Desc4] 无
[FLD_Desc5] 幸运
[FLD_Desc6] 强度(最好不要加,不然...)
[FLD_Desc7] 攻击速度(填1指攻击速度-1)
[FLD_Desc8-13] 未知
手镯:
[Durx][MaxDurx] -- 这是指物品的持久
[FLD_Desc0] 防御
[FLD_Desc1] 魔御
[FLD_Desc2] 攻击
[FLD_Desc3] 魔法
[FLD_Desc4] 道术
[FLD_Desc5] 等级(在当前等级的情况下,再加一个N等级才能用)
[FLD_Desc6-13] 未知(中间某项有值就不能将物品从身上取下来)
项链(指特殊的):
[Durx][MaxDurx] -- 这是指物品的持久
[FLD_Desc0] 生命恢复(最后不要有值,我加了5后结果发现血每一秒钟减1)
[FLD_Desc1] 魔法恢复(同上)
[FLD_Desc2] 攻击
[FLD_Desc3] 魔法和道术
[FLD_Desc4] 未知
[FLD_Desc5] 等级
[FLD_Desc6-13] 未知(中间某项有值就不能将物品从身上取下来)
戒指:
[Durx][MaxDurx] -- 这是指物品的持久
[FLD_Desc0] 防御
[FLD_Desc1] 魔御
[FLD_Desc2] 攻击
[FLD_Desc3] 魔法和道术
[FLD_Desc4] 未知
[FLD_Desc5] 等级
[FLD_Desc6-13] 未知(中间某项有值就不能将物品从身上取下来)
衣服:
[Durx][MaxDurx] -- 这是指物品的持久
[FLD_Desc0] 防御
[FLD_Desc1] 魔御
[FLD_Desc2] 攻击
[FLD_Desc3] 魔法和道术
[FLD_Desc4-13] 未知
麻痹戒指:
[Durx][MaxDurx] -- 这是指物品的持久
[FLD_Desc0] 防御
[FLD_Desc1] 魔御
[FLD_Desc2] 攻击
[FLD_Desc3] 未知
[FLD_Desc4] 魔法和道术
[FLD_Desc5] 等级
[FLD_Desc6-13] 未知(中间某项有值就不能将物品从身上取下来)
头盔:
[Durx][MaxDurx] -- 这是指物品的持久
[FLD_Desc0] 防御
[FLD_Desc1] 魔御
[FLD_Desc2] 攻击
[FLD_Desc3] 魔法和道术
[FLD_Desc4-13] 未知(中间某项有值就不能将物品从身上取下来)


在gam里面的TBL_ABILITY里面是人物等级(FLD_LEVEL),经验(FLD_EXP,FLD_MAXEXP),生命(FLD_HP,FLD_MAXHP),魔法(FLD_MP,FLD_MAXMP)等除了经验和等级...生命和魔法在这里是改不了的.
gamel里的(TBL_CHARACTER)这个表就可以改生命,魔法,破坏什么的相当于银杏加点
FLD_CHARACTER--角色名称
FLD_USERID--角色帐号
FLD_DELETED--角色是否删除
FLD_UPDATEDATETIME--角色创建的时间
FLD_DBVERSION--也不知道干吗的
FLD_MAPNAME--角色所在地图
FLD_CX--角色所在地图X点
FLD_CY--角色所在地图Y点
FLD_DIR--不知道
FLD_HAIR--发型
FLD_HAIRCOLORR--头发颜色
FLD_HAIRCOLORG--头发颜色
FLD_HAIRCOLORB--头发颜色 这3个可以用画画里面找出象素
FLD_SEX--性别 0是男1是女
FLD_JOB--职业0-战士1-法师2-道士
FLD_LEVEL--登入游戏时显示的等级---修改这里没用要改等级在上面的表里
FLD_GOLD--金子哈哈钱
FLD_HOMEMAP--回城点
FLD_HOMEX---回城点坐标X
FLD_HOMEY---回城点坐标Y
FLD_PKPOINT--PK值
下面的好几个表不知道是干吗的知道的请写出来
到了修改人物的地方
FLD_LEVELBONUS--这个是你在银杏加过多少次点
FLD_EXTRAHP--加了多少血10为
FLD_EXTRAMP--加了多少MP
FLD_EXTRAPWRS0--加了多少防御
FLD_EXTRAPWRS1--加了多少魔法防御
FLD_EXTRAPWRS2--加了多少破坏
FLD_EXTRAPWRS3--加了多少自然
FLD_EXTRAPWRS4--加了多少灵魂
FLD_EXTRAPWRS5-11--是加了多少元素5是火11是幻影
FLD_INDEX--是服务器创建的第几个角色
我就知道这么多了

SHAPE值:戒指136 手镯137 项链138的特殊属性是吸血,anicoun这个属性大家看到了吧,很多人不知道是什么用吧,这里你可以在0--100之间调整,数值越高,吸血越猛烈,调到100后,带两手镯,两戒指,一项链,基本是不死之身,只要你一挥出刀马上满HP,建议调为30,很明显的吸血装备.
补充:武器 204的特殊属性也是吸血的。但是要注意的是。如果武器也加入了会产生一些奇怪的效果。有的时候会挥不出来刀。不要怪偶没有提醒哦?




# 4 2006-01-12 03:29
--思路:将所有玩家仓库/身上/包袱中的装备全部放入一个临时表,再从临时表中查询MAKEINDEX重复的装备并遂个删除
-- 删除的记录记在日志文件TBL__DELLOG中。
--日期:2003/04/29
--修正日期:2003/05/20

---建立临时表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TBL_ALLITEM]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TBL_ALLITEM]
GO

CREATE TABLE [dbo].[TBL_ALLITEM] (
[FLD_CHARACTER] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FLD_TYPE] [tinyint] NULL ,
[FLD_MAKEINDEX] [int] NOT NULL ,
[FLD_TID] [varchar] (30) NOT NULL ,
[FLD_INDEX] [int] NOT NULL ,
[Name] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL,
[Place] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

--从玩家身上/包袱获取数据
INSERT INTO [muddb].[dbo].[TBL_ALLITEM]([FLD_CHARACTER], [FLD_TYPE], [FLD_MAKEINDEX],[FLD_TID],[FLD_INDEX],[Name],[Place])
SELECT [FLD_CHARACTER], [FLD_TYPE], [FLD_MAKEINDEX], LTRIM(STR([FLD_MAKEINDEX]))+LTRIM(STR([FLD_INDEX])) AS FLD_TID,[FLD_INDEX],[Name],'身上' AS Place
FROM [muddb].[dbo].[TBL_ITEM],[muddb].[dbo].[StdItems]
WHERE [FLD_INDEX]-1=[Idx]
GO

--从仓库获取数据
INSERT INTO [muddb].[dbo].[TBL_ALLITEM]([FLD_CHARACTER], [FLD_TYPE], [FLD_MAKEINDEX],[FLD_TID],[FLD_INDEX],[Name],[Place])
SELECT [FLD_CHARACTER], [FLD_TYPE], [FLD_MAKEINDEX], LTRIM(STR([FLD_MAKEINDEX]))+LTRIM(STR([FLD_INDEX])) AS FLD_TID,[FLD_INDEX],[Name],'仓库' AS Place
FROM [muddb].[dbo].[TBL_SAVEDITEM],[muddb].[dbo].[StdItems]
WHERE [FLD_INDEX]-1=[Idx]
GO

--记录将要删除的复制装备
if not exists (select * from dbo.sysobjects where id = object_id(N'[muddb].[dbo].[TBL__DELLOG]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
CREATE TABLE [muddb].[dbo].[TBL__DELLOG] (
[删除日期] datetime not null,
[FLD_MAKEINDEX] [int] NOT NULL ,
[角色名] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[装备代码] [int] NULL ,
[装备名称] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL,
[存放地点] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]

GO

INSERT INTO [muddb].[dbo].[TBL__DELLOG]([删除日期],[FLD_MAKEINDEX],[装备代码],[装备名称],[角色名],[存放地点])
SELECT getdate() as 删除日期,[FLD_MAKEINDEX] , [FLD_INDEX]-1 AS 装备代码,[Name] AS 装备名称,[FLD_CHARACTER] AS 角色名, [Place] AS 存放地点
FROM [muddb].[dbo].[TBL_ALLITEM]
WHERE ((([FLD_TID]) In
(SELECT [FLD_TID] FROM [TBL_ALLITEM] As Tmp GROUP BY [FLD_TID] HAVING Count([FLD_TID])>1 )))
ORDER BY [FLD_MAKEINDEX]

GO
--遂个删除复制装备
DECLARE @T_ID char (30),@I_MAKEINDEX int , @V_Place varchar (10)
DECLARE D_ITEMS_cursor CURSOR FOR

SELECT [FLD_TID],[FLD_MAKEINDEX],[Place]
FROM [muddb].[dbo].[TBL_ALLITEM]
WHERE ((([FLD_TID]) In
(SELECT [FLD_TID] FROM [TBL_ALLITEM] As Tmp GROUP BY [FLD_TID]
HAVING Count([FLD_TID])>1 )))
ORDER BY [FLD_MAKEINDEX]

OPEN D_ITEMS_cursor

FETCH NEXT FROM D_ITEMS_cursor INTO @T_ID,@I_MAKEINDEX,@V_Place

WHILE @@FETCH_STATUS = 0

BEGIN

BEGIN
IF @V_Place = '仓库'
DELETE FROM [muddb].[dbo].[TBL_SAVEDITEM] WHERE [FLD_MAKEINDEX] = @I_MAKEINDEX
ELSE
DELETE FROM [muddb].[dbo].[TBL_ITEM] WHERE [FLD_MAKEINDEX] = @I_MAKEINDEX
END

FETCH NEXT FROM D_ITEMS_cursor INTO @T_ID,@I_MAKEINDEX,@V_Place

END

CLOSE D_ITEMS_cursor
DEALLOCATE D_ITEMS_cursor

GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TBL_ALLITEM]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TBL_ALLITEM]

GO
--------------------------------------------------------------
--作者:口吃的男人
--说明:此SQL脚本专为删除垃圾数据而写
--思路:提取所有已删除或者级别小于21的角色名最后一次登陆在2003年7月30号以前的,
并删除与此角色相关的装备及技能
--最后修正日期:2003/05/20
WHERE [FLD_DELETED]=1 AND FLD_UPDATEDATETIME < '2003 - 7 - 30' (删除7月30以前没有登陆的所有用户)
------------------------------------------------------------------
DECLARE @username char(15)
DECLARE D_lj_cursor CURSOR FOR

SELECT [FLD_CHARACTER] FROM [muddb].[dbo].[TBL_CHARACTER]
WHERE [FLD_DELETED]=1 OR ([FLD_LEVEL]<21 AND FLD_UPDATEDATETIME < '2003 - 7 - 30')

OPEN D_lj_cursor

FETCH NEXT FROM D_lj_cursor INTO @username

WHILE @@FETCH_STATUS = 0

BEGIN
PRINT '正在删除 '+@username+' 的相关资料......'
DELETE FROM [muddb].[dbo].[TBL_MAGIC] WHERE [FLD_CHARACTER] = @username
DELETE FROM [muddb].[dbo].[TBL_ITEM] WHERE [FLD_CHARACTER] = @username
DELETE FROM [muddb].[dbo].[TBL_SAVEDITEM] WHERE [FLD_CHARACTER] = @username
DELETE FROM [muddb].[dbo].[TBL_QUEST] WHERE [FLD_CHARACTER] = @username
DELETE FROM [muddb].[dbo].[TBL_SKILL] WHERE [FLD_CHARACTER] = @username
DELETE FROM [muddb].[dbo].[TBL_CURRENTABILITY] WHERE [FLD_CHARACTER] = @username
DELETE FROM [muddb].[dbo].[TBL_ABILITY] WHERE [FLD_CHARACTER] = @username
DELETE FROM [muddb].[dbo].[TBL_CHARACTER] WHERE [FLD_CHARACTER] = @username

FETCH NEXT FROM D_lj_cursor INTO @username

END

CLOSE D_lj_cursor
DEALLOCATE D_lj_cursor

------------------------------------------------------------------
SQL中查询自己定意级别,多久没登录的语句!
SQL中执行上面命令就可以了
SELECT *
FROM TBL_CHARACTER
WHERE (FLD_LEVEL < 21) AND (FLD_UPDATEDATETIME < '2003 - 7 - 30')
--------------------------------------------------------------
查询人物
SELECT *
FROM TBL_CHARACTER
WHERE (FLD_INDEX = '34')
--------------------------------------------------------------
--人身上的物品代码为34的物品全部删除掉,还有仓库的
DELETE FROM [muddb].[dbo].[TBL_ITEM]
WHERE [FLD_INDEX]=34

DELETE FROM [muddb].[dbo].[TBL_SAVEDITEM]
WHERE [FLD_INDEX]=34

-------------------------------------------------------------
/*查找身上与箱子里的复制物品*/
SQL中执行上面命令就可以了
SELECT *
FROM TBL_ITEM
WHERE (FLD_MAKEINDEX IN
(SELECT fld_makeindex
FROM tbl_saveditem))
ORDER BY FLD_MAKEINDEX

--------------------------------------------------------------
--角色改名,所有相关资料随同转移到新角色上面。
--@username 原名
--@username1 新角色名

DECLARE @username varchar(10),@username1 varchar(10)
set @username='口吃的男人'
set @username1='不再口吃'

UPDATE [muddb].[dbo].[TBL_QUEST]
SET [FLD_CHARACTER] = @username1
WHERE [FLD_CHARACTER] like @username

UPDATE [muddb].[dbo].[TBL_MAGIC]
SET [FLD_CHARACTER] = @username1
WHERE [FLD_CHARACTER] like @username

UPDATE [muddb].[dbo].[TBL_ITEM]
SET [FLD_CHARACTER] = @username1
WHERE [FLD_CHARACTER] like @username

UPDATE [muddb].[dbo].[TBL_SAVEDITEM]
SET [FLD_CHARACTER] = @username1
WHERE [FLD_CHARACTER] like @username

UPDATE [muddb].[dbo].[TBL_CHARACTER]
SET [FLD_CHARACTER] = @username1
WHERE [FLD_CHARACTER] like @username

UPDATE [muddb].[dbo].[TBL_ABILITY]
SET [FLD_CHARACTER] = @username1
WHERE [FLD_CHARACTER] like @username

------------------------------------------------------------------
--调级
DECLARE @username varchar(10)
set @username='口吃的男人'

UPDATE [muddb].[dbo].[TBL_CHARACTER]
SET [FLD_LEVEL]=40
WHERE [FLD_CHARACTER] like @username

UPDATE [muddb].[dbo].[TBL_ABILITY]
SET [FLD_LEVEL]=40
WHERE [FLD_CHARACTER] like @username
------------------------------------------------------------------
--删除技能
DELETE FROM [muddb].[dbo].[TBL_MAGIC]
--删除包中的物品
DELETE FROM [muddb].[dbo].[TBL_ITEM]
--删除仓库物品
DELETE FROM [muddb].[dbo].[TBL_SAVEDITEM]
--删除任务数据
DELETE FROM [muddb].[dbo].[TBL_QUEST]

--调整所有玩家级别为七级,金钱为5000,经验为0
UPDATE [muddb].[dbo].[TBL_CHARACTER]
SET [FLD_LEVEL]=7, [FLD_GOLD]=5000
UPDATE [muddb].[dbo].[TBL_ABILITY]
SET [FLD_LEVEL]=7,[FLD_EXP] = 0
----------------------------------------------------------------
SELECT *
FROM TBL_CHARACTER
where FLD_CHARACTER='非凡'

选择所有项目来自于表格TBL_CHARACTER,列出符合条件为"非凡"的人物名称.

SELECT *
FROM TBL_MAGIC
where FLD_CHARACTER='xtwfgypm'

SELECT *
FROM TBL_CHARACTER
where FLD_USERID='3680550'

选择所有项目来自于表格TBL_CHARACTER,列出符合条件为"3680550"的帐号id

SELECT *
FROM TBL_SAVEDITEM
where FLD_DURA='41000'

选择所有项目来自于表格TBL_SAVEDITEM(人物的仓库),列出符合条件为"41000"的持久度或纯度.

SELECT *
FROM TBL_ITEM
where FLD_INDEX='286'

选择所有项目来自于表格TBL_ITEM(人物包袱),列出符合条件为"286"的物品序号

SELECT *
FROM TBL_ITEM
where FLD_MAKEINDEX='220076414'

选择所有项目来自于表格TBL_ITEM(人物包袱),列出符合条件为"220076414"的制造时间戳.
分类