傳奇腳本變量、命令名的詳細解釋


傳奇腳本變量、命令名的詳細解釋

【變量屬性】 [000-999]

『屬性說明』:該變量有下線、重新啟動服務器均不消失的強記錄性。保存在hum.db(還是在mir.db記不太清

楚。望高手指正)該變量只有2種狀態。1和0

『用法』:因為該變量記錄性比較強。而且如果產生讀寫操作時服務器的操作不是很大。所以作為記錄一些人

物的下線后需要保留的數據的話作用十分大,大部分任務時常用到他。但是該變量值只有1和0的兩種狀態。而

且根據M2不同,其個數也不相同。建議您一定要活用變量,盡量避免浪費該變量。

P(0-9)

『屬性說明』:該變量只對當前對話NPC內有效果。如果中途點其他NPC或者對話產生close、關閉時所有P變量

均歸0。該變量取值范圍:(0-?)根據M2最大值不同

『用法』:該變量沒有NPC間傳遞性作為臨時變量多重復使用效果十分好。而且因為腳本命令有對該變量進行加

/減/賦值/隨機取值等運算,他和goto的配合可以使腳本中出現仿for循環的效果。並且因為他不傳遞的性質其

隨機取值也能與RANDOM媲美。

D(0-9)

『屬性說明』:該變量在人物不下線時對全局NPC通用傳遞。該變量取值范圍:同P變量

『用法』:既有像[0-?]變量一樣的人物屬性私有變量的效果又有像P變量一樣的運算功能!唯一不足就是下線

后該變量會被清空。可是如果配合上[000]變量或者namelist變量的記錄性。實在是功能強大的個人隱私屬性!

不過本人無端的猜測該變量與P變量是保存在客戶端內存的:)無任何根據如果不是請當個玩笑

G(0-9)

『屬性說明』:該變量不屬於人物屬性范圍,對於全服務器內該變量唯一並且全局NPC通用傳遞。該變量取值

范圍:同P變量

『用法』:這個變量是唯一的一個不屬於任何人物而屬於服務器的變量,該變量通過任何人的運算均產生效果

。而且不保存在任何人的屬性中。(好象是在mir.db?望高手指正)但是需要注意服務器關閉后該變量清空,目

前尚需要通過綜合namelist或者[000]變量后才可以使其保存。

Namelist.txt

『屬性說明及用法』:他為什么也屬於一個變量,因為他的工作方式與變量一樣,而且由於是直接對硬盤的讀

寫反更牢*一些。而且他的實現也很特殊,沒有取值范圍的限制,只有自己的名字記錄在任意的文本內,具體

操作起來還很容易。作為變量的擴展起了不可替代的作用。而且有些M2的功能還需要這些的變量進行擴展。所

以該變量的應用和功能實在需要加強。

★友情提示您:該變量的操作請適可而止,如果在同一時間內進行大量的硬盤讀/寫/查找/檢測/操作是對

服務器穩定性和硬件極大的傷害!因為該變量只針對人物有效。如果某個命令需要進行大量的namelist操作的

話。那許多人同時進行該命令的時候實在不能說不是對服務器的一個嚴峻的考驗。

■此處僅代表個人意見:腳本的功能大體是一種簡易匯編語法具體操作的累積。而活用這些變量是腳本精

華所在,腳本基礎命令是一些簡單針對這些變量的操作,優秀的腳本系統是通過這些變量和命令編寫出來的功

能。而后來所添加的腳本命令大部分是獨立的功能,如果這樣下去功能固然無限的增多,但是M2卻也在無限的

增大。

 

以下為腳本命令的解釋

 

【檢測后綴命令】

此屬性命令為#IF后#ACT前,作為檢測是否為真的命令。

CHECK [001-?] 1/0〗 查看人物指定的變量是否為1/0。如果為真則通過至#act

RANDOM (1-?)〗 隨機一個數字,根據后邊的數字判定當前通過至#act的幾率。

★注意這里有一些用法錯誤。★

錯誤一:

#if

RANDOM 3

#act

goto 1

break

#if

RANDOM 3

#act

goto 2

break

#if

RANDOM 3

#act

goto 3

break

很多人認為random的具體運行是首先在3以下隨機取一個值,然后該腳本內的random 3都不再取值了。那樣理解

的時候goto 1、2、3的幾率是相等的,都是1/3。這是一個理解上的錯誤,實際這里運行的操作是這樣的,到達

1的幾率為1/3,到達2的幾率為先2/3然后1/3就是2/9。而到達3的幾率則為2/3然后2/3然后1/3實際幾率為4/27

!同樣錯誤的還有如下寫法

#if

RANDOM 3

#act

goto 1

#elseact

#if

RANDOM 3

#act

goto 2

#elseact

#if

RANDOM 3

#act

goto 3

#elseact

close

錯誤二:

#if

RANDOM 3

#act

goto 1

break

#if

RANDOM 2

#act

goto 2

break

#if

RANDOM 1

#act

goto 3

break

有人認為在第一個random的時候會給一個隱藏的值在3以下做一個賦值。然后以后的random就是檢測是否自己的

random值和這個隱藏值相同,如果相同則#act。這個也是一種錯誤理解,雖然同是對random理解錯誤造成的,

但是該錯誤與錯誤一理解上是不同的。但是這種隨機的設計方式是提倡的,利用P變量的隨機取值是可以完成的

 

EQUAL〗(變量)(數值)測試指定變量的值是否等於該命令指定值,可惜的是此處無法用PDG等變量,只能用數字常量!強烈建議Jacky添加該功能。

LARGE〗(變量)(數值)測試指定變量的值是否大於該命令指定值,同樣非常可惜該數值只能為常量。

SMALL〗(變量)(數值)測試指定變量的值是否小於該命令指定值,同樣非常可惜該數值只能為常量。

GENDER 〗(man/woman)檢測是否為男/女

hour/min〗(時間1)(時間1)檢測當前時間(小時/分鍾)是否為時間1與時間2之間。

CHECKLEVEL〗(數值)測試等級數量是否大於該命令指定值,同樣非常可惜該數值只能為常量。

CHECKJOB〗(職業)測試對話職業是否為指定職業,其后綴的根據M2不同而不同基礎M2為:Warr, Wizard, Taos。

CHECKITEM〗(物品名稱)(數量)查看人物背包中是否指定物品名稱的數量是否大於該命令指定值,該數量不寫默認為1既檢測有沒有該物品。同樣非常可惜該數值只能為常量。

CHECKITEMW〗(物品名稱)(數量)查看人物所佩帶裝備中是否指定物品名稱的數量是否大於該命令指定值,該數量不寫默認為1既檢測有沒有該物品。同樣非常可惜該數值只能為常量。

CHECKGOLD〗(數值)測試金幣數量是否大於該命令指定值,同樣該數值只能為常量。

ISTAKEITEM〗(物品名稱)檢測剛剛取下的物品是否指定物品名稱。

 

CHECKDURAEVA〗(物品名)(數值)查看人物背包中是否指定的物品名稱的持久是否大於該命令指定值,該數量不寫默認為1既檢測有沒有該物品。同樣非常可惜該數值只能為常量。

DAYOFWEEK〗(星期數)查看當天是否為指定的星期數量。

CHECKPKPOINT〗(數值)測試PK值是否大於該命令指定值。

CHECKLUCKYPOINT〗(數值)測試幸運值是否大於該命令指定值。

CHECKMONMAP〗(地圖名)(數值)測試指定的地圖名中的怪物數量是否大於該命令指定值。同樣非常可惜該數值只能為常量。

CHECKHUM〗(地圖名)(數值)測試指定的地圖名中的人物數量是否大於該命令指定值。同樣非常可惜該數值只能為常量。

CHECKBAGGAGE〗測試背包是否滿了

CHECKNAMELIST〗[路徑](文件名)檢測指定路徑下文件名的文件內是否有該玩家當前人物名稱。

CHECKIPLIST〗[路徑](文件名)檢測指定路徑下文件名的文件內是否有該玩家當前IP地址。

#〖CHECKMARRYED〗檢測當前對話人物是否結過婚。

#〖CHECKGUILDMASTER〗檢測當前對話人物是否屬於行會掌門。

#〖CHECKOFGUILD〗(行會名)檢測當前對話人物是否屬於指定行會。

#〖CHECKGUILDOFSBK〗檢測當前對話人物所屬於行會是否為沙。

#〖CHECKATTACKSBKGM〗檢測當前對話人物所屬於行會是否為當前攻沙行會。

#〖CHECKACCOUNTLIST〗[路徑](文件名)檢測指定路徑下文件名的文件內是否有該玩家當前帳號。

#〖CHECKPAYMENT〗檢測當前對話人物是否充值。

#〖CHECKBBCOUNT〗(數值)檢查人物所帶寶寶數量。

#〖CHECKCREDITPOINT〗(數值)檢查當前人物的聲望是否大於命令指定數值。

#〖EXECHECK NAMEIPLIST〗[路徑](文件名)檢測指定路徑下文件名的文件內該玩家人物名稱后的IP是否與當前登陸IP相同。

#〖EXECHECK DIR〗檢查當前人物對面方向站的人物方向是否正確,多用於結婚。

#〖EXECHECK DIR 1〗檢查當前人物對面方向站正確方向的人物是否與當前人物性別一致。多用於結婚。

#〖EXECHECK DIR 2〗檢查當前人物對面方向站正確方向的人物是否與當前人物性別不同。多用於結婚。

#〖EXECHECK POSTLEVEL〗(數值)檢查當前人物對面方向站正確方向的人物的等級是否大於命令指定數值。

#@〖CHECKGUILDLIST〗[路徑](文件名)檢測指定路徑下文件名的文件內該玩家所屬行會名稱是否存在。

#@〖ISADMIN〗檢查當前人物是否為游戲管理員。

#@〖HAVEGUILD〗檢查當前人物是否加入了行會。

#@〖ISCASTLEGUILD〗檢測當前對話人物是否屬於沙。

#@〖ISCASTLEMASTER〗檢測當前對話人物是否為沙掌門。

#@〖ISGUILDMASTER〗檢測當前對話人物是否為行會的掌門。

#@〖ISNEWHUMAN〗檢測當前對話人物是否為剛注冊第一次進入游戲。

#@〖CHECKSLAVECOUNT〗[控制符](數值)檢查當前人物所帶寶寶數量


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM