傳奇變量-系統(tǒng)變量
系統(tǒng)變量? ? ?
變量類型
變量分為? 個(gè)人變量? ?全局變量? ?它們兩個(gè)都有字符型(中英文數(shù)字)和數(shù)字型(數(shù)字)
G0-G999 (全局變量,數(shù)字型) 可保存。(存放在Mir200/GlobalVal.ini文件里面)
A0-A999 (全局變量,字符型) 可保存。(存放在Mir200/GlobalVal.ini文件里面)
I0-I999 (全局變量,數(shù)字型) 服務(wù)器重啟歸0
U0-U499 (私人變量,數(shù)字型) 可保存。(存放在人物數(shù)據(jù)庫Mir.db里面)
T0-T499 (私人變量,字符型) 可保存。(存放在人物數(shù)據(jù)庫Mir.db里面)
J0-J499 (私人變量,數(shù)字型) 可保存。(存放在人物數(shù)據(jù)庫Mir.db里面)
Z0-Z499 (私人變量,字符型) 可保存。(存放在人物數(shù)據(jù)庫Mir.db里面)
N0-N999 (私人變量,數(shù)字型) 下線不保存.小退歸0.
S0-S999 (私人變量,字符型) 下線不保存.小退清空.
N$擴(kuò)展變量 (私人變量,數(shù)字型) 下線不保存.小退歸0.? 擴(kuò)展變量名稱盡量不要以數(shù)字開頭
S$擴(kuò)展變量 (私人變量,字符型) 下線不保存.小退清空. 擴(kuò)展變量名稱盡量不要以數(shù)字開頭
P0-P999 (私人變量,數(shù)字型) 打開對(duì)話框重置為0。
D0-D999 (私人變量,數(shù)字型) 下線不保存.搖篩子變量.
M0-M999 (私人變量,數(shù)字型) 下線不保存.切換地圖清空.
變量輸出格式? ? <$STR(變量名稱)>? ? 輸出之后顯示輸出的值
①.變量賦值
MOV? G100 10
MOV? A100? 搜服一百
MOVR G100 1 100
MOVR G100 100
②.變量檢測(cè)
LARGE N3 0? ?大于? 只能用于數(shù)字型變量檢測(cè)
SMALL N3 10? 小于? 只能用于數(shù)字型變量檢測(cè)
EQUAL N3 5? ?等于? 可用于數(shù)字型和字符型
③.變量運(yùn)算
INC G88 5 ;設(shè)置變量G88=G88+5
DEC G88 5 ;設(shè)置變量G88=G88-5? ? ?減少值,DEC 1 就是減1
MUL G88 5 ;設(shè)置變量G88=G88*5
DIV G88 5 ;設(shè)置變量G88=G88/5
SUM 求和
=================================================================
擴(kuò)展字符變量S和數(shù)字變量N
功能:擴(kuò)展字符變量S和數(shù)字變量N
格式:無
說明:擴(kuò)展字符變量S和數(shù)字變量N,除了支持0~499以外,可以在S$變量或N$變量后面增加任意字符
例:?
[@test]
#ACT
MOV S$我的人物名稱 <$USERNAME>
SENDMSG 0 <$STR(S$我的人物名稱)> 255 253
[@test1]
#ACT
MOV N$我的殺怪總數(shù) 100
INC <$STR(N$我的當(dāng)前殺怪?jǐn)?shù))> 1
SENDMSG 6 【殺怪總數(shù)=<$STR(N$我的殺怪總數(shù))>】【當(dāng)前殺怪?jǐn)?shù)=<$STR(N$我的當(dāng)前殺怪?jǐn)?shù))>】 255 253
=================================================================
@@InPutString 與 @@InPutInteger? 區(qū)別
如果需要在一個(gè)腳本中使用該命令,
則需要在腳本的第一行輸入(@@InPutInteger @@InPutString)這段內(nèi)容。
;區(qū)別就是@@InPutString為字符,@InPutInteger為數(shù)字,數(shù)字對(duì)應(yīng)私人變量為N,字符則為S
[@Main]
請(qǐng)輸入數(shù)字1 <輸入/@@InPutInteger1>\
請(qǐng)輸入數(shù)字2 <輸入/@@InPutInteger2>\
請(qǐng)輸入數(shù)字3 <輸入/@333>\
...............................\
請(qǐng)輸入字符1 <輸入/@@InPutString1>\
請(qǐng)輸入字符2 <輸入/@@InPutString2>\
...............................\
[@InPutInteger1]
#SAY
你輸入的數(shù)字1是 <$STR(N1)>\
[@InPutInteger2]
#IF
LARGE N2 0
SMALL N2 1000001
#ACT MessageBox 你輸入的數(shù)字2是 <$STR(N2)>\
#ELSEACT
MessageBox 請(qǐng)正確輸入數(shù)量(1-100W)。
break
[@333]
#ACT
MessageBox 請(qǐng)輸入數(shù)量(1-100W)。 @@InPutInteger3(請(qǐng)輸入元寶數(shù)量(1-1000000)。)
[@InPutInteger3]
#IF
LARGE N3 0
SMALL N3 1000001
#ELSEACT
MessageBox 請(qǐng)正確輸入元寶數(shù)量(1-100W)。
break
#IF
CHECKGAMEGOLD < <$STR(N3)>
#ACT
MessageBox 你身上沒有足夠的元寶。
#ELSEACT
GAMEGOLD - <$STR(N3)>
MessageBox 成功將 <$STR(N3)>元寶扣除。
break
;===============================
[@InPutString1]
#SAY
你輸入的字符1是<$STR(S1)>\
[@InPutString2]
#IF
EQUAL S2 aaa
#ACT
MessageBox 正確
#ELSEACT
MessageBox 錯(cuò)誤
break
有禁止符號(hào)時(shí)執(zhí)行當(dāng)前npc的腳本@InputStringFilter, @InputIntegerFilter
禁止符號(hào)在M2-列表信息一設(shè)置
[@InputStringFilter]?
; 如果用戶輸入的字符在消息過濾列表中就會(huì)調(diào)轉(zhuǎn)到這個(gè)字段
#SAY
輸入的字符非法
[@InputIntegerFilter]?
; 如果用戶輸入的數(shù)字在消息過濾列表中就會(huì)調(diào)轉(zhuǎn)到這個(gè)字段
#SAY
輸入的字符非法?
=================================================================
附加知識(shí)
INPUTTEXT:輸入框ID:X:Y:寬度:高度:背景色:邊框色:文字顏色:最小長度:最大長度:數(shù)據(jù)無效時(shí)提示對(duì)話框內(nèi)容:提示文字:提示文字顏色
輸入框ID: 1-40
背景色:-1為透明,0-255
邊框色:-1為無邊框, 0-255
最小長度,最大長度,為0表示不判斷
INPUTNUM:輸入框ID:X:Y:寬度:高度:背景色:邊框色:文字顏色:最小值:最大值:數(shù)據(jù)無效時(shí)提示對(duì)話框內(nèi)容:提示文字:提示文字顏色
輸入框ID: 1-40
背景色:-1為透明,0-255
邊框色:-1為無邊框, 0-255
最小值,最大值:同時(shí)為0表示不限,否則最小值必須 <= 最大值
以上2個(gè)命令:“數(shù)據(jù)無效時(shí)提示對(duì)話框內(nèi)容”為空時(shí),客戶端不檢查數(shù)據(jù)有效性。
示范:
[@main]
姓名:<INPUTTEXT:1:0:0:80:15:0:249:255:4:10:姓名必須在4-10位長:輸入姓名:160> \
年齡:<INPUTNUM:2:0:2:80:15:0:249:255:1:100:年齡必須輸入1-100之間的數(shù)字:輸入年齡:160> \
性別:<INPUTNUM:3:0:4:80:15:0:249:255:0:1:性別必須輸入0或1:男(0)-女(1):160> \
<Img:130:1:0:4:*|249#將所有輸入框的內(nèi)容全提交/@全部提交>
<text:只提交姓名年齡:10:6:1,2/@提交部分>
[@提交部分]
#act
;;;;;;★★★★★★★★★★★★★★★★★★★★★★★★★★這里別忘了對(duì)輸入的數(shù)據(jù)有效性判斷。。。
SendMsg 5 輸入的姓名為 <$NPCINPUT(1)>
SendMsg 5 輸入的年齡為 <$NPCINPUT(2)>
SendMsg 5 輸入的性別為 <$NPCINPUT(3)>
[@全部提交]
#act
;;;;;;★★★★★★★★★★★★★★★★★★★★★★★★★★這里別忘了對(duì)輸入的數(shù)據(jù)有效性判斷。。。
SendMsg 5 輸入的姓名為 <$NPCINPUT(1)>
SendMsg 5 輸入的年齡為 <$NPCINPUT(2)>
SendMsg 5 輸入的性別為 <$NPCINPUT(3)>
;---------------------------------------------------------------------------------------------
注: 如果留空要通過檢測(cè)不想提示的請(qǐng)用空格。
姓名:<INPUTTEXT:1:0:0:80:15:0:249:255:0:0: : :160>\?
;---------------------------------------------------------------------------------------------
INPUTTEXT
INPUTNUM 有非法字符,全是觸發(fā) @inputboxFilter
[@InputBoxFilter]
#ACT
SendMsg 5 輸入了非法字符
=================================================================
當(dāng)前目標(biāo)變量取值操作C. (C.變量必須目標(biāo)不為空且對(duì)象為人物)?
當(dāng)前目標(biāo)變量取值操作C. (C.變量必須目標(biāo)不為空且對(duì)象為人物)
當(dāng)前對(duì)象的所有私人的常量都可以使用在前面加“C.”的方式
當(dāng)前對(duì)象的所有私人的變量使用<$C.STR(S1)>和查看自己的變量<$STR(S1)>多一個(gè)“C.”
比如在攻擊觸發(fā),被攻擊觸發(fā),死亡觸發(fā),還有查看出售角色的其他信息的觸發(fā)時(shí)
當(dāng)前對(duì)象的常量,例如:<$C.HP> <$C.PKPOINT> <$C.GOLDCOUNT> <$C.GAMEGOLD>
當(dāng)前對(duì)象的變量,例如:<$C.STR(S1)> <$C.STR(A1)> <$C.STR(T1)> <$C.STR(U1)> <$C.HUMAN(QQQQ)> <$C.GUILD(WWWW)>?
;SetCurrTarget 名稱 (名稱空的情況下表示清空當(dāng)前對(duì)象;設(shè)置指定人物為當(dāng)前對(duì)象,要求和執(zhí)行腳本的玩家在同一地圖且坐標(biāo)在20格以內(nèi))
;使用命令 : SetCurrTarget設(shè)置當(dāng)前對(duì)象
簡易示例:
#IF
CHECKCURRTARGETRACE = 0
#ACT?
;使用MOV命令調(diào)整當(dāng)前對(duì)象的變量 ---MOV對(duì)象變量只可讀不可寫,所以不支持!!??!
;MOV <$C.STR(S1)> <$STR(S1)>?
;SENDMSG 6 把我的S1變量值傳遞給當(dāng)前對(duì)象的S1變量里,MOV不支持這樣操作,可用SetHumVar變量傳遞進(jìn)行修改,如下
SetHumVar <$C.USERNAME> S1 S2
SENDMSG 6 把我的S2變量值傳遞給當(dāng)前對(duì)象的S1變量里
#IF
CHECKCURRTARGETRACE = 0
#ACT?
;使用MOV命令將自己的變量改為當(dāng)前對(duì)象的變量?
MOV <$STR(N1)> <$C.STR(N1)>?
SENDMSG 6 把對(duì)方的的N1變量值傳遞給我的的N1變量里,使用“C.STR”代表當(dāng)前對(duì)象的變量比自己的“STR”前面多一個(gè)“C.”
;查看他人裝備觸發(fā):
[@QueryUserState]
#ACT
MOV S1 <$UserStateName>
;SetCurrTarget 名稱 (名稱空的情況下表示清空當(dāng)前對(duì)象;設(shè)置指定人物為當(dāng)前對(duì)象,要求和執(zhí)行腳本的玩家在同一地圖且坐標(biāo)在20格以內(nèi))
;使用SetCurrTarget設(shè)置當(dāng)前對(duì)象
SetCurrTarget S1
#IF
CompareText <$C.USERNAME> S1
;檢測(cè)設(shè)置的對(duì)象是否成功
#say
當(dāng)前對(duì)象名稱:\
【<$C.USERNAME> 】等級(jí)=【<$C.LEVEL> 】攻擊=【<$C.DC> - <$C.MAXDC> 】PK值=【<$C.PKPOINT> 】\
#ELSESAY
對(duì)象獲取失敗。