傳奇GEE引擎關于腳本安全相關,部分新手寫腳本不嚴謹,導致游戲腳本被封包利用造成損失,再這里給大家舉例說明幾個腳本安全相關示例
首先涉及到GOTO,CALL,和非NPC界面使用鼠標點擊的腳本,我們可以利用引擎禁止點擊字符進行強化安全,下面我們就使用系統禁止點擊觸發命令 :PlayDie ,這個命令是死亡觸發命令,引擎文檔也提到只要腳本頭前綴涉及包含PlayDie 那么不允許點擊,這個可以搜索引擎文檔進行了解,搜索關鍵詞:為什么提示禁止點擊該NPC觸發字段
風險腳本示例1------------下面----------看講解為什么是風險----------------------------------
;下面是NPC腳本:
[@main]
\
[@正常開始回收]
#IF
EQUAL U108 0
#ACT
#CALL [\回收元寶系列\裝備回收價格.txt] @回收裝備正常
CLOSE
break
;下面....QuestDiary\回收元寶系列\裝備回收價格.txt腳本(因為上面NPC腳本已經將腳本CALL到這里了)
;執行條件為 檢測 U108變量不等于0則CALL到下面腳本執行
[@回收裝備正常]
{
#IF
check [100] 1
#ACT
goto @戰狂回收檢測A
#IF
check [101] 1
#ACT
goto @神武回收檢測B
#IF
check [102] 1
#ACT
goto @烈火回收檢測C
break
;--下面是上方GOTO執行腳本,
;執行條件為 分別檢測個人標識100 101 102等于1則GOTO進行執行下面對應腳本
[@戰狂回收檢測A]
#OR
Checkitem 戰狂精鐵劍 1
Checkitem 戰狂精鐵鎧 1
Checkitem 戰狂頭盔 1
Checkitem 戰狂項鏈 1
Checkitem 戰狂手鐲 1
Checkitem 戰狂護腕 1
Checkitem 戰狂戒指 1
Checkitem 戰狂指環 1
Checkitem 戰狂腰帶 1
Checkitem 戰狂靴子 1
#ACT
TakeBagItem 戰狂頭盔|戰狂項鏈|戰狂手鐲|戰狂護腕|戰狂戒指|戰狂指環|戰狂腰帶|戰狂靴子 46 20 0 0 38000 N0 1
TakeBagItem 戰狂精鐵劍|戰狂精鐵鎧 46 40 0 0 76000 N1 1
MOV N$回收金額A
MUL N$回收金額A 20
MOV N$回收金額B
MUL N$回收金額B 40
INC U89
INC U89
SENDMSG 0 【裝備回收】:恭喜{[]|250:0:1}成功回收{戰狂套裝|254:0:1},獲得海量[{元寶,經驗|254:0:255}]...!!! 31 0
break
[@神武回收檢測B]
#OR
Checkitem 神武嗜血劍 1
Checkitem 神武嗜血鎧 1
Checkitem 神武頭盔 1
Checkitem 神武項鏈 1
Checkitem 神武手鐲 1
Checkitem 神武護腕 1
Checkitem 神武戒指 1
Checkitem 神武指環 1
Checkitem 神武腰帶 1
Checkitem 神武靴子 1
#ACT
TakeBagItem 神武頭盔|神武項鏈|神武手鐲|神武護腕|神武戒指|神武指環|神武腰帶|神武靴子 46 40 0 0 40000 N0 1
TakeBagItem 神武嗜血劍|神武嗜血鎧 46 80 0 0 80000 N1 1
MOV N$回收金額A
MUL N$回收金額A 40
MOV N$回收金額B
MUL N$回收金額B 80
INC U89
INC U89
SENDMSG 0 【裝備回收】:恭喜{[]|250:0:1}成功回收{神武套裝|254:0:1},獲得海量[{元寶,經驗|254:0:255}]...!!! 31 0
break
[@烈火回收檢測C]
#OR
Checkitem 烈火焚天劍 1
Checkitem 烈火焚天鎧 1
Checkitem 烈火頭盔 1
Checkitem 烈火項鏈 1
Checkitem 烈火手鐲 1
Checkitem 烈火護腕 1
Checkitem 烈火戒指 1
Checkitem 烈火指環 1
Checkitem 烈火腰帶 1
Checkitem 烈火靴子 1
#ACT
TakeBagItem 烈火頭盔|烈火項鏈|烈火手鐲|烈火護腕|烈火戒指|烈火指環|烈火腰帶|烈火靴子 46 60 0 0 45000 N0 1
TakeBagItem 烈火焚天劍|烈火焚天鎧 46 120 0 0 90000 N1 1
MOV N$回收金額A
MUL N$回收金額A 60
MOV N$回收金額B
MUL N$回收金額B 120
INC U89
INC U89
SENDMSG 0 【裝備回收】:恭喜{[]|250:0:1}成功回收{烈火套裝|254:0:1},獲得海量[{元寶,經驗|254:0:255}]...!!! 31 0
break
講解風險:以上腳本可以使用封包工具直接執行@回收裝備正常 @MAIN 和 @戰狂回收檢測A @神武回收檢測B @烈火回收檢測C ,因為這才是整段腳本的核心,前面所做一切檢測就是為了這段核心執行腳本所準備,反而到了執行腳本可以忽略前面所做的一切檢測,如果在執行腳本or下執行檢測好像又不好做,那么我們就可以利用引擎禁用點擊字段進行設置,比如上面所說的死亡觸發字段PlayDie,因為這段執行腳本是不需要NPC點擊,所以可以使用禁止點擊字符來進行規避風險
下面修正腳本進行講解,
風險2.CALL過來的腳本第一個字段是[@回收裝備正常] ,再QFunction-0.txt 是有檢測U108變量值的,但是封包可以無視NPC腳本中的[@正常開始回收]檢測字段,依然可以直接點擊@回收裝備正常],解決方式有2個,第一個就是把檢測U108放入到@回收裝備正常]內如下:
[@回收裝備正常]
{
#IF
EQUAL U108 0
check [100] 1
#ACT
goto @戰狂回收檢測A
#IF
EQUAL U108 0
check [101] 1
#ACT
goto @神武回收檢測B
#IF
EQUAL U108 0
check [102] 1
#ACT
goto @烈火回收檢測C
break
這樣處理就可以了,當時封包依然可以跳過上面的檢測直接執行@戰狂回收檢測A @神武回收檢測B @烈火回收檢測C,因為這三段腳本都OR檢測,所以不好做檢測,我們我們可以利用禁止點擊字符進行規避風險,因為@回收裝備正常 屬于引擎內部跳轉腳本,也是不需要NPC點擊的,所以我們可以使用禁止點擊字符來進行規避(關于禁止點擊字段,下面講解)
講解那么多現在來說如何正確使用系統禁止點擊字段來規避風險,下面腳本演示
[@main]
\
[@正常開始回收]
#IF
EQUAL U108 0
#ACT
#CALL [\回收元寶系列\裝備回收價格.txt] @PlayDie回收裝備正常
CLOSE
break
[@PlayDie回收裝備正常]
{
#IF
check [100] 1
#ACT
goto @PlayDie戰狂回收檢測A
#IF
check [101] 1
#ACT
goto @PlayDie神武回收檢測B
#IF
check [102] 1
#ACT
goto @PlayDie烈火回收檢測C
break
[@PlayDie戰狂回收檢測A]
#OR
Checkitem 戰狂精鐵劍 1
Checkitem 戰狂精鐵鎧 1
Checkitem 戰狂頭盔 1
Checkitem 戰狂項鏈 1
Checkitem 戰狂手鐲 1
Checkitem 戰狂護腕 1
Checkitem 戰狂戒指 1
Checkitem 戰狂指環 1
Checkitem 戰狂腰帶 1
Checkitem 戰狂靴子 1
#ACT
TakeBagItem 戰狂頭盔|戰狂項鏈|戰狂手鐲|戰狂護腕|戰狂戒指|戰狂指環|戰狂腰帶|戰狂靴子 46 20 0 0 38000 N0 1
TakeBagItem 戰狂精鐵劍|戰狂精鐵鎧 46 40 0 0 76000 N1 1
MOV N$回收金額A
MUL N$回收金額A 20
MOV N$回收金額B
MUL N$回收金額B 40
INC U89
INC U89
SENDMSG 0 【裝備回收】:恭喜{[]|250:0:1}成功回收{戰狂套裝|254:0:1},獲得海量[{元寶,經驗|254:0:255}]...!!! 31 0
break
[@PlayDie神武回收檢測B]
#OR
Checkitem 神武嗜血劍 1
Checkitem 神武嗜血鎧 1
Checkitem 神武頭盔 1
Checkitem 神武項鏈 1
Checkitem 神武手鐲 1
Checkitem 神武護腕 1
Checkitem 神武戒指 1
Checkitem 神武指環 1
Checkitem 神武腰帶 1
Checkitem 神武靴子 1
#ACT
TakeBagItem 神武頭盔|神武項鏈|神武手鐲|神武護腕|神武戒指|神武指環|神武腰帶|神武靴子 46 40 0 0 40000 N0 1
TakeBagItem 神武嗜血劍|神武嗜血鎧 46 80 0 0 80000 N1 1
MOV N$回收金額A
MUL N$回收金額A 40
MOV N$回收金額B
MUL N$回收金額B 80
INC U89
INC U89
SENDMSG 0 【裝備回收】:恭喜{[]|250:0:1}成功回收{神武套裝|254:0:1},獲得海量[{元寶,經驗|254:0:255}]...!!! 31 0
break
[@PlayDie烈火回收檢測C]
#OR
Checkitem 烈火焚天劍 1
Checkitem 烈火焚天鎧 1
Checkitem 烈火頭盔 1
Checkitem 烈火項鏈 1
Checkitem 烈火手鐲 1
Checkitem 烈火護腕 1
Checkitem 烈火戒指 1
Checkitem 烈火指環 1
Checkitem 烈火腰帶 1
Checkitem 烈火靴子 1
#ACT
TakeBagItem 烈火頭盔|烈火項鏈|烈火手鐲|烈火護腕|烈火戒指|烈火指環|烈火腰帶|烈火靴子 46 60 0 0 45000 N0 1
TakeBagItem 烈火焚天劍|烈火焚天鎧 46 120 0 0 90000 N1 1
MOV N$回收金額A
MUL N$回收金額A 60
MOV N$回收金額B
MUL N$回收金額B 120
INC U89
INC U89
SENDMSG 0 【裝備回收】:恭喜{[]|250:0:1}成功回收{烈火套裝|254:0:1},獲得海量[{元寶,經驗|254:0:255}]...!!! 31 0
break
以上腳本為修復腳本,因為腳本前綴包含了系統禁止點擊字段PlayDie,那么這腳本只能引擎內部跳轉使用,嚴禁外部點擊的,任何腳本字段只要不是靠NPC去點擊的都可以使用引擎禁止點擊字段作為前綴,當玩家使用封包工具進行點擊時候,引擎上會顯示日志: 用戶:人物名稱; NPC Function 禁止點用該NPC觸發字段 playdie回收裝備正常!反正只要不是需要鼠標點擊的都可以使用禁止點擊字符來做腳本頭!!!!這樣就無視封包工具刷包了,那么需要NPC點擊的下面講解!
|
|