gom掛機腳本
⑴ 傳奇服務端腳本命令
1、常用命令
#IF ;如果
#SAY ;輸出字元串
#ACT ;執行命令
break ;結束命令
close ;結束對話
2、人物條件命令
CHECKITEM 物品名 數量 ;檢測當前人物所帶物品及數量
CHECKGOLD 數量 ;檢測當前人物所帶金幣數量
CHECKLEVELEX (>,<,=) 等級數 ;檢測當前人物等級
CHECKCREDITPOINT (>,<,=) 聲望數 ;檢測當前人物聲望
CHECKJOB (Warrior,Wizard,Taoist) ;檢測當前人物所屬職業
CHECKHUM 地圖名 數量 ;檢測指定地圖的玩家數量
CHECKITEMW 物品名 數量 ;檢測當前人物是否佩帶指定物品
CHECKDURAEVA 物品名 數值 ;檢測當前人物所帶礦物等物品的品質
CHECKBAGGAGE ;檢測當前人物的背包是否已滿
ONLINELONGMIN (>,<,=) 時長 ;檢測當前人物在線時長
CHECKCASTLEDOOR (損壞,開啟,關閉) ;檢測沙城城門狀態
CASTLEWARAY (>,<,=) 天數 ;檢測上次攻城到現在的天數
CASTLECHANGEDAY (>,<,=) 天數 ;檢測沙巴克佔領天數
CHECKOFGUILD 行會名稱 ;檢測當前人物行會名稱
CHECKNAMELIST 角色名列表.txt ;檢測當前人物角色名是否在列表中
CHECKGUILDLIST 行會列表.txt ;檢測當前人物行會是否在列表中
CHECKACCOUNTLIST 帳號列表.txt ;檢測當前人物帳號是否在列表中
CHECKIPLIST IP列表.txt ;檢測當前人物IP是否在列表中
CHECKACCOUNTIPLIST 帳號和IP列表.txt ;檢測當前人物登錄帳號與IP是否與列表中匹配
CHECKNAMEIPLIST 角色名和IP列表.txt ;檢測當前人物角色名稱與IP是否與列表中匹配
ISADMIN ;檢測當前人物是否為管理員
HAVEGUILD ;檢測當前人物是否加入行會
ISCASTLEGUILD ;檢測當前人物是否為沙城成員
ISCASTLEMASTER ;檢測當前人物是否為沙城老大
ISGUILDMASTER ;檢測當前人物是否為行會老大
ISNEWHUMAN ;檢測當前人物是否為新人
CHECKSLAVECOUNT (>,<,=) 數量 ;檢測傳奇私服人物所帶寵物的數量
CHECKSLAVELEVEL (>,<,=) 等級數(7) ;檢測當前人物所帶寵物的等級
CHECKEXP (>,<,=) 經驗值 ;檢測當前人物經驗值
CHECKPOSELEVEL (>,<,=) 等級數 ;檢測當前人物對面人物的等級
CHECKPOSEGENDER 性別(男,女) ;檢測當前人物對面人物的性別
CHECKMEMBERLEVEL 類型 (>,<,=) 等級數 ;檢測當前人物的會員等級
CHECKMEMBERTYPE (=,>,<) 類型數 ;檢測當前人物的會員類型
CHECKRENEWLEVEL (=,>,<) 轉生次數 ;檢測當前人物的轉生次數
CheckBagSize 數量 ;檢測當前人物背包空格數
CHECKDC (=,>,<) 攻擊下限 (=,>,<) 攻擊上限 ;檢測當前人物攻擊力的上限及下限值
CHECKMC (=,>,<) 魔法下限 (=,>,<) 魔法上限 ;檢測當前人物魔法力的上限及下限值
CHECKSC (=,>,<) 道術下限 (=,>,<) 道術上限 ;檢測當前人物道術力的上限及下限值
CHECKHP (=,>,<) HP下限 (=,>,<) HP上限 ;檢測當前人物HP值的上限及下限值
CHECKMP (=,>,<) MP下限 (=,>,<) MP上限 ;檢測當前人物MP值的上限及下限值
CHECKUSEITEM 物品位置 ;檢測當前人物身上指定位置是否戴物品
CHECKITEMTYPE 物品位置 物品類型 ;檢測當前人物身上指定位置戴的物品是否為指定類型
CHECKGAMEPOINT 活力值 ;檢測當前人物活力值
ISLOCKPASSWORD ;檢測當前人物的倉庫是否解鎖
PASSWORDERRORCOUNT (=,>,<) 次數 ;檢測當前人物輸入倉庫密碼錯誤次數
CheckRangeMonCount 地圖號 X Y 范圍 (=,>,<) 數量 ;檢測一個坐標范圍內怪物數量
CheckMonMap 地圖號 數量 ;檢測一個指定地圖內的怪物數量
CHECKMON 數量 ;檢測私服人物所在地圖內的怪物數量
CHECKSKILL 技能名稱 (=,>,<) 修煉等級 ;檢測當前人物已學技能
3、地圖功能命令
MAP 地圖名 ;將當前人物移動到指定地圖
MOVEMAP 地圖名 X Y ;將當前人物移動到指定地圖的指定坐標
TIMERECALL 時間值 ;指定當前人物到達多少時間後被傳回這里
BREAKTIMERECALL ;中斷指定人物達多少時間後被傳回這里
RECALLMOB 怪物名稱 寶寶等級(最高為 7) 叛變時間(分鍾) 是否自動變色(0、1)固定顏色(1-7);給予當前人物指定怪物為寶寶
setautogetexp 命令 時間 經驗 是否安全區(0為任何地方) 地圖號(任何地圖請不用填);指定當前人物在線泡經驗(直接得到經驗)
GAMEGOLD (=,+,-) 數量 ;調整當前人物的元寶數量
SETRANKLEVELNAME 封號 ;調整當前人物的封號
ADDGUILDLIST 行會列表.txt ;將當前人物行會名加入列表
DELGUILDLIST 行會列表.txt ;將當前人物行會名從列表刪除
ADLNAMELIST 角色名列表.txt ;將當前人物角色名加入列表
DELNAMELIST 角色名列表.txt ;將當前人物角色名從列表刪除
CLEARNAMELIST 列表.txt ;清除列表內的所有信息
HAIRSTYLE 數值 ;調整當前人物的發型
CHANGENAMECOLOR 數值 ;調整當前人物的名字顏色
CHANGEJOB 職業名稱(Warrior,Wizard,Taoist) ;調整當前人物的所屬職業
CHANGEGENDER 數值 ;調整重慶市人物的所屬性別
ADDSKILL 技能名稱 技能等級 ;給予當前人物添加指定技能
DELSKILL 技能名稱 ;刪除當前人物的指定技能
SKILLLEVEL 技能名稱 (=,+,-) 技能等級 ;調整當前人物的指定技能為指定等級
DELNOJOBSKILL ;刪除當前人物非本職業的所有技能
CLEARSKILL ;刪除當前人物的所有技能
GAMEPOINT (=,+,-) 數量 ;調整當前人物的活力值
CREDITPOINT (=,+,-) 數量 ;調整當前人物的聲望點數
SETMEMBERLEVEL (=,+,-) 等級數 ;調整當前人物的會員等級
SETMEMBERTYPE (=,+,-) 等級數 ;調整當前人物的會員類型
CHANGELEVEL (=,+,-) 等級數 ;調整當前人物的等級
CHANGEPKPOINT (=,+,-) 點數 ;調整當前人物的PK點數
CHANGEEXP (=,+,-) 經驗值 ;調整當前人物的經驗值
CHANGEMODE 模式類型(1管理模式、2無敵模式、3隱身模式) 開關(1為開,0為關) ;調整當前人物的游戲模式
CHANGEPERMISSION 許可權等級 ;調整當前人物的許可權等級
KILLMONEXPRATE 倍率 有效時間 ;調整當前人物的殺怪經驗倍率
POWERRATE 倍率 有效時間 ;調整當前人物的攻擊力倍率
KICK ;將當前人物踢下線
KILL 數值 ;將當前傳奇私服人物殺死,並設置殺死類型
KILLSLAVE ;將當前人物的寶寶全部殺死
CLEARPASSWORD ;清除當前人物的倉庫密碼
RestRenewLevel ;將人物的轉生次數復位為零,即未轉生
DELMARRY ;清除當前人物的結婚信息
DELMASTER ;清除當前人物的拜師信息
RENEWLEVEL 轉次數 轉後等級 0 ;將當前人物轉生,並設置轉生次數以及轉生後人物等級跳到多少級
SENDMSG 信息類型代碼 %s信息內容%d ;發送文字信息
CLEARMAPMON 地圖號 ;清除指定地圖的所有怪物
RESTBONUSPOINT ;清楚當前人物的屬性點
PARAM1 地圖 ;NPC指定刷怪地圖
PARAM2 橫坐標 ;NPC刷怪X坐標
PARAM3 縱坐標 ;NPC刷怪Y坐標
MONGEN 怪物名稱 數量 時間 ;NPC刷怪命令+怪物+數量+時間
takew可以取走身上裝備的物品)
mapmove 移動地圖(例如:mapmove 0 634 612)
map 移動地圖(不需要具體坐標.例如:map 0)
timerecall 在規定時間內召回(timerecall 5 在5分鍾之內召喚回原地圖)
takecheckitem 收取checkitem過的物品(不加任何參數)
monclear 清空地圖怪物(monclear 0 清空0地圖上的所有怪物)
exchangemap 互換地圖(exchangemap 地圖代碼)
recallmap 把某地圖的人召喚過來(recallmap 地圖代碼)
batchmove 3 (此3個連用可以瞬移地圖用於賭場)
3、定義變數
RANDOM 隨機數 ;一般用在#IF語句中作為觸發#IF機率,
EQUAL 變數名 數值 ;檢測變數是否等於指定數值
LARGE 變數名 數值 ;檢測變數是否大於指定數值
SMALL 變數名 數值 ;檢測變數是否小於指定數值
MOV 變數名 數值 ;給予變數賦於指定值
INC 變數名 數值 ;給予變數加上指定值
DEC 變數名 數值 ;給予變數減去指定值
SUM 變數名A 變數名B ;將兩個變數相加
MOVR 數值 ;變數賦予小於指定數值的隨機非負數
<$STR(變數)> ;把變數轉為字元串
SET [變數名] 數值 ;定義變數
RESET [變數名] 連續數字 ;連續將變數清零
CHECK [變數數值] 數值 ;檢測變數是否等於指定數值
(1)gom掛機腳本擴展閱讀
傳奇伺服器腳本命令常見錯誤
1、錯誤一:
#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!
2、錯誤二:
#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變數的隨機取值是可以完成的。
⑵ GOM引擎的腳本問題
這段檢測極品的點數 一個裝備位置0到4的極品點數
#IF
#ACT
GETITEMADDVALUE 0 0 <$STR(M10)>
GETITEMADDVALUE 0 1 <$STR(M11)>
GETITEMADDVALUE 0 2 <$STR(M12)>
GETITEMADDVALUE 0 3 <$STR(M13)>
GETITEMADDVALUE 0 4 <$STR(M14)>
INC M10 <$STR(M11)>
INC M10 <$STR(M12)>
INC M10 <$STR(M13)>
INC M10 <$STR(M14)>
4個位置的極品點數相加後
#IF
equal M10 1
;如果4個位置只有1點就變色 215顏色
#ACT
ChangeItemNameColor 0 215
#IF
;如果4個位置只有2點就變色 255顏色
equal M10 2
#ACT
ChangeItemNameColor 0 255
要自己擴展 自己往下寫就可以了
⑶ gom引擎活動腳本在哪裡
現在就說重點吧!
首先開始服務端和游戲,上面講了如何快速找到相應的NPC腳本!
從今日起教指令基本!
咱們先找游戲裡面的腳本我們來分析一下!
例如,NPC兌換這種貨幣,我們去找他的確切位置,
趣味游戲網幣兌換n3n322334【貨幣兌換】0300040。
下面一行就是NPC在游戲中對應的腳本,我們來看看貨幣兌換-n3nN3N就是他的地圖號這個版本的《土城》已經不再是原版的3了,而是變成了n3n!
[@main]首先這個你可以理解為創建游戲對話吧!這個對話框是什麼?這時滑鼠指代的地方就是對話框!
CloseBigDialogBox我們的指南將會關閉大型對話框模式.(專用的登錄程序)
先把跟游戲裡面的腳本對照一下,游戲裡面有什麼變化,通過對比我們了解到,很多在腳本裡面看不到的東西都是游戲裡面沒有出現的,這也是讓你編程時與玩家對應的思路!
用我們自己來猜,也可以讀懂在游戲中顯示的按鈕文字,那麼/SCOLOR=249是什麼?
這是表示的顏色,對照後發現是紅色的字體我們來看看游戲中的紅色字體!
換成250看下是否變成綠色,保存完NPC腳本後,在M2控制台點裝載NPC!
它現在變綠了,好讓你知道它是干什麼的!
說到重點!<提取1000火龍幣/@1000>游戲裡面成成成成成一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
然後,後邊的@1000不示示對吧這個是我們編程用到的,當玩家點擊1000火龍幣他就會執行@1000。
就會找到和他一樣的人,看看有沒有@1000的!
[@兌換1000]
#IF
CHECKGamePoint>9。
#ACT
游戲點10。
游戲滑鼠+10。
游戲圖+1000。
SendMsg7恭喜兌換1000個火龍幣+10點充值額,余額<$GameDiamond>個。
break
#ELSEACT。
MESSAGEBOX提示:您沒有10個RMB點數,不可兌換!
Break
這時代碼將運行到[@兌換1000]這個地地開始手他的工作!
下面將解釋一些重要的命令!#IF#ACT#ELSEACT。
你能把#IF理解為判斷-判斷什麼?您在下面輸入的內容將會判斷哪些內容如CHECKGamePoint>9我們的指令,看看代碼所表示的意思,並得知這是游戲泡點值,他的意思就要判斷是否>9判斷誰大於9?
是誰點擊了這個NPC就知道誰寫的代碼寫的點數超過了9你點NPC就判斷你自己點就判斷他身上的!
你自己去考慮吧!
#ACT代表正確,例如,上面的IF決定人物是否大於9如果我們身上有10泡點值,那麼這個條件是正確的,請從ACT下開始執行代碼GamePoint-10,扣掉10個GameGird靈符+10。GameDiamond鑽石+1000。
#ELSEACT這個代表錯誤,例如,IF判斷泡點是否大於9,而我們只有8則條件不成立,跳入該代碼,開始執行錯誤執行段!
MESSAGEBOX提示:您沒有10個RMB點數,不可兌換!【提示您不能使用10RMB】
代碼結尾是Break!
把圖片做一個總結的總結!
如果玩家點擊游戲提取1000碼,就會跳到和他一樣的@1000段開始者!從上到下執行代碼首先要通過判斷!
#if判斷是否已經足夠了,比如我們現在就與8和9比較下>9我們現在是8不成立時跳入錯誤。
假如我們的值是10,繼續判斷我們是否>9條件正確,將在ACT下執行。
游戲點10。
游戲滑鼠+10。
游戲圖+1000。
SendMsg7恭喜兌換1000個火龍幣+10點充值額,余額<$GameDiamond>個。
加碼扣錢提示兌換成功!
也許初學者看起來有點亂慢慢理解下可以記住誰點擊這個NPC就能判斷誰!