魔力腳本源碼
⑴ 魔力寶貝000666輔助如何編寫腳本與npc或石碑對話 比如營地那個時間石碑如何對話
這個說起來有點復雜。。如果你僅需要營地石碑的話。。我可以告訴你。。因為與NPC對話有很好種。。有的要對話好多次。。所以說起來有點難。。以下是與營地NPC對話的腳本行:
moveto(7, 22)
turn_about(8, "")
因為與石碑對話是最簡單的對話。。無需點確定之類的。所以腳本也簡單。。前提是你要走到7。22這個坐標。。下面的行才有效。如果不是這個坐標。那你就要把下面的8改成相應的方向(1-8)分別代表(北-西北)注意。。這個方向上平面方向。。而不是地圖方向。。如果按地圖方向計算。那腳本運行不下去。。我以前剛開始寫腳本時總是出錯。。原因就是我按地圖方向標注腳本。呵呵
求採納。。。。有什麼不明白的可以追問。。對了。腳本的下一句應該是nowhile("聖騎士營地", 1)
⑵ 魔力寶貝FZ腳本這么寫
自己把掛開著走路就行了吧,我也很多年沒玩了~
⑶ 我想改改魔力腳本,簡單的改個坐標的我會, 深一點的就不行了,誰有魔力寶貝道具FZ腳本代碼大全,謝謝了
輔助程序腳本命令大全(2005-1-1)
一、概述
1、腳本是以.script為擴展名的,是純文本文件,您可以用記事本或其它純文本編輯器打開進行編輯。
2、腳本的開頭第一行為默認的注釋部分,在執行時將顯示在輔助程序腳本說明框中,一般這里註明起始點等腳本運行需求。
3、輔助程序的腳本語法非常簡單,分為命令和參數兩部分,解釋執行,不支持過程調用。
4、需要注意的是,腳本中的命令和參數都是區分大小寫的,參數值可用引號也可以不用引號
5、//後面的為腳本注釋,腳本運行時是不會理會到的
二、程序內部值設置語句 set
set語句用來設置程序內部值,語法是:set(value1, value2, value3),其中value1和value2為內部變數名,詳細看以下說明,value3為要賦的值。value3的值可用InputVal函數讓腳本使用者輸入,也可直接寫在語句內。
1、set(timer, value)
設定腳本定時器的值為value,單位是毫秒,默認值為320,一般不需要進行改動。此值越小腳本運行的速度越快,但並不意味著效率會提高
1、set(timer1, value)
設定系統指令定時器的值為value,單位是毫秒,默認值為320,一般不需要進行改動。此值的改變將影響自動遇敵的速度以及戰斗-2中功能的判斷速度,請不要任意縮小此值,以免引起不時的斷線
8、set(auto_action, AutoFlee, value)
設定是不是遇敵全跑,value值為0或1,1表示全跑,0表示不全跑。
2、set(auto_action, Exp, value)
設定系統是否按腳本指令執行戰斗,value=1為有效,value=0表示按程序面板設置進行,當置為1時,當遇敵時腳本會直接跳轉到action:標號執行戰斗設置指令,然後返回原來的位置。
3、set(auto_action, ManAction, value) 需要set(auto_action, Exp, 1)
設定人物動作類型 0:人物普通攻擊,1:人物防禦,2:人物逃跑,3:人物換位 4:什麼也不做,5:人物使用技能,6:使用物品。
4、set(auto_action, ManActionSkill, value) 需要set(auto_action, Exp, 1)
設定人物使用的技能名稱,如"明鏡止水",只有當set(auto_action, ManAction, 5)時,此句才會生效。
5、set(auto_action, ManActionSkillLevel, value) 需要set(auto_action, Exp, 1)
設定人物使用的技能技能的級別,值為1-10。
6、set(auto_action, ManActionObj, value) 需要set(auto_action, Exp, 1)
設定人物要攻擊的對象,此句一般不用,而是用setobj代替。
7、set(auto_action, PetAction, value) 需要set(auto_action, Exp, 1)
設定寵物攻擊類型,什麼也不做101,技能100
8、set(auto_action, PetActionSkill, value) 需要set(auto_action, Exp, 1)
設定寵物攻擊技能名稱,如"攻擊"。
8、set(auto_action, PetActionObj, value) 需要set(auto_action, Exp, 1)
設定寵物攻擊對象,此句一般不用,而是用setobj代替。
9、set(auto_action, 自動戰斗, value)
設定是否自動戰斗,1為是,0為否。
10、set(auto_action, 高速戰斗, value)
設定是否高速戰斗,1為是,0為否。
11、set(auto_action, 高速延遲, value)
設定高速延遲值,值為1-9。
12、set(auto_protect, AutoMoveType, value)
設定自動遇敵的類型,值為0-6,值的含交見面板中的類型下拉框中的說明。
15、set(auto_protect, GM, value)
設定是否開啟遇保護功能,是為1,否為0。
16、set(auto_protect, 自動疊加, value)
設定是否開啟自動疊加功能,是為1,否為0。
17、set(auto_protect, 自動扔物品, value)
設定是否開啟自動扔物品功能,是為1,否為0。
18、set(auto_protect, 斷線保護, value)
設定是否開啟斷線保護功能,是為1,否為0。
19、set(auto_protect, 停止保護, value)
設定是否開啟停止保護功能,是為1,否為0。
20、set(auto_protect, GM, value)
設定是否開啟停止GM保護功能, 此保護是判斷周圍有沒有GM類的人物ID的,現在GM可能用普通人物上線而無法實現正確保護。
20、set(auto_protect, GM1, value)
設定是否開啟停止周圍人物小於設定級數的保護功能,value為0或1,級數的指定在界面上. 此保護是判斷周圍有沒有低於正常級數的人物,如在大學門口有低於40級人物出現時
三、人物移動命令
1、moveto(value1, value2)
移動到指定坐標,value1和value2分別為目標坐標,東和南。如:moveto(102, 111)
3、movego(value1)
向指定方向移動一格,value1為方向,值為1001-1008,分別表示北-西北。
四、等待到指定地圖或指定任務結束 nowhile
1、等待人物在指定地圖 nowhile("value1", 1)
value1為位置名稱,如"法蘭城",當人物到達法蘭城時才會執行下一句。
2、等待人物到指定位置和坐標 nowhile(value1, value2, value3)
value1為位置名稱,value2為東坐標,value3為南坐標,人物到達指定位置和坐標時,才會執行下一句。
3、等待補血魔完成 nowhile(renew)
與renew語句配合,等待人物補血魔完成後才執行下一句。
4、等待賣東西完成 nowhile(sale)
與sale語句配合,等待人物賣東西完成後才執行下一句。
五、賣東西語句 sale
sale(value1)
value1為方向,值為1001-1008,分別表示北-西北。此語句下一句應該是nowhile(sale)
六、加血魔語句 renew
renew(value1)
value1為方向,值為1001-1008,分別表示北-西北。此語句下一句應該是nowhile(renew)
七、控制自動遇敵
1、開始自動遇敵 begin_auto_action
一般在掛石腳本中,走到戰斗掛機點時執行此句開始自動遇敵,注意不要放在判斷循環中使用此句,因為從執行此句時,自動遇敵的原點就生效了,如果不斷調用此句,原點將不斷變化造成偏離。
2、結束自動遇敵 end_auto_action
一般在掛石腳本中,當需要賣石或回城補血時用此句停止自動遇敵狀態。
八、條件判斷語句 if
格式為if("狀態、耐久、物品等系統指定值", "系統指定值", value1, value2, value3)
value1為的值可為:=(等於)<(小於)>(大於)!=(不等於)
value2為用戶設置的值,與系統指定值比較,可由InputVal函數讓用戶設定
value3為標號,當符合判斷條件時跳轉到該標號,否則執行下一句
含義是,當「系統指定值」與value2比較,如何比較為value1設定,結果為真時,跳轉到value3。
1、if("狀態", "GameCommand.ActionStat", value1, value2, value3)
判斷是否在遇敵戰斗狀態,GameCommand.ActionStat=0時為非戰斗狀態,GameCommand.ActionStat=1時為戰斗狀態。
2、if("狀態", "Character._action_count", value1, value2, value3)
判斷戰斗的回合數,第1回合為1。
3、if("狀態", "Character._loc", value1, value2, value3)
判斷人物所在位置,如法蘭城,value1隻可為「=」。
4、if("狀態", "GameMap.x", value1, value2, value3)
判斷人物所在的東坐標。
5、if("狀態", "GameMap.y", value1, value2, value3)
判斷人物所在的南坐標。
6、if("狀態", "GameMap.x.y", value1, value2, value3)
判斷人物所在的坐標,value1隻可為「=」,如if("狀態", "GameMap.x.y", =, "100,111", "abc")
7、if("狀態", "Character._foe_count", value1, value2, value3)
判斷遇敵對個數。
8、if("狀態", "Character._health", value1, value2, value3)
判斷人物受傷的值,0為健康,最高為100,那時為最傷了。
9、if("耐久", value5, value1, value2, value3)
判斷物品的耐久,當value5為數字時,表示物品的位置,當value5非數字時,表示是物品名稱。如if("耐久", "國民弓", <, "100", "abc"),物品欄的位置值為8-27,裝備的位置值為:
5左飾 0頭 6右飾 2手 3手 1身 4腳 7水晶
10、if("物品", value5, value1, value2, value3)
判斷人物身上物品欄中物品的數量,value5為物品名稱,當value2=「滿」時,不將不管value5為什麼值,只判斷物品欄是否為滿的。
11、if("物品數量", value5, value1, value2, value3)
判斷人物身上物品欄中可以疊加的物品的數量,value5為物品名稱,當其中有一個指定物品的數量滿足條件時則跳轉,如if("物品數量", "鐵", >, 30 ,"abc"),此語句只要身上有一組鐵的數量大於30個,就跳轉至abc。
12、if("人", "血", value1, value2, value3)
判斷人物生命值。
13、if("人", "魔", value1, value2, value3)
判斷人物魔值。
14、if("寵", "血", value1, value2, value3)
判斷寵物血值。
15、if("寵", "魔", value1, value2, value3)
判斷寵物魔值。
16、if("怪物", "名字", value1, value2, value3)
判斷怪物的名字,怪物中只要有符合條件的就跳轉。
17、if("怪物", "級別", value1, value2, value3)
判斷怪物的級別,怪物中只要有符合條件的就跳轉。
18、if("銀行", "數量", value1, value2, value3)
判斷銀行中物品的數量,注意,只有當和銀行NPC說過話後系統才知道銀行的物品,所以在使用該語句時,確定已經和銀行NPC說過話。
19、if("狀態", "SystemCue", "", value1, value2)
判斷系統提示(游戲中黃色的字)中是否含有value1指字的字元串,如果有則跳轉至value2。需要注意的是,一般在調用此判斷後應該調用ClearSysCue語句清空外掛內存中保留的提示數據,以防止在腳本循環中反復判斷。
20、if("聊天", "內容", "", value1, value2)
判斷聊天內容中是否有value1指定的內容,如果含有指定的內容則跳轉到value2指定的標號
21、if("變數", "變數名", "比較符", value1, value2)
比較變數名的值和value1的值,條件符合轉到value2指定的標號
九、直接跳轉指令 goto
goto(value1)
value1為要跳轉到的標號。
十、NPC對話語句 Npc
1、Npc(value1, value2, value3)
在游戲中,與NPC交淡的數據中有兩個值是玩家發送的,value1是菜玩家選擇的菜單值,value2是擴展數據,如賣東西時value2中包含了要賣的物品欄位置,value3為要等待服務端返回什麼頭信息。此函數的值一般用腳本記錄器生成。
2、Npc("壓條", value2, value3)
壓制條,value2為物品名,如"鐵"
3、Npc("存條", value2, value3)
將物品存入銀行,value2為物品名。
十一、裝備
1、equip(value1, value2)
裝備物品,value1為物品名,value2為要裝備到的位置,參照上面的位置表。
2、unequip(value1)
下裝備,value1為下的裝備名稱。
十二、生產
1、Work(100, value1)
在使用鑒定等指令前需要此句,value1為間隔的時間,單位為毫秒,與下一句的WaitTime中的值應該一至。
2、Work(value1, value2)
鑒定待指令語句,value1為指令代碼,value2為要鑒定的物品名,其它指令可置空"":
value1=101 鑒定
value1=201 變身鑒定
value1=102 挖掘
value1=202 變身挖掘
value1=103 狩獵
value1=203 變身狩獵
value1=104 伐木
value1=204 變身伐木
value1=105 修理武器
value1=205 變身修理武器
value1=106 修理防具
value1=206 變身修理防具
value1=207 狩獵體驗
value1=107 狩獵體驗
3、Work(value1)
打開、關閉頭頂上的圖標,當value1為0時則為關閉,每個工作的值是不同的。
4、Compound(value1, value2)
製作合成物品,value1為要合成的物品名,比如「麵包」,value2指定是否是變身狀態下的合成
十三、聊天、郵件
1、chat(v1,v2,v3,v4)
說話語句
v1=說話內容
v2=顏色值」
v3=范圍
v4=字體大小
2、RecvMail(value1, value2)
接收到包含內容為value1的郵件時跳轉到value2。
3、SendMail(value1, value2)
給名字為value1的人發送內容為value2的郵件。
4、SendPetMail(value1, value2, value3)
給名字為value1的人發送內容為value2,物品名為value3的寵物郵件。
十四、物品處理
1、ren(value1)
扔物品,當value1為數字時扔指定位置的物品,當為非數字時扔指定物品名的東西。
2、moveres("物品名",最多數量)
疊加物品。
3、JianDongXi(value1)
揀拾地上的物品,value1的值為0-8,代表北-西北方向。
4、ShuangDian(value1)
雙擊物品欄中,物品名為value1的物品。
5、mymoveres(value1, value2, value3)
分拆物品,參數為,物品名,數量,標志,當標志=0時,數量為要分拆出去的數量;當標志=1時,數量為物品留在原地的數量,把多餘的移出去
6、myren(value1, value2)
扔數量小於value2名字為value1的東西,一般為扔可疊加物品。
7、myren_1(value1, value2)
扔數量大於value2名字為value1的東西,一般為扔可疊加物品。
十五、其它一些語句
1、getout
登回城。
2、exit
登出遊戲。
3、nop
空操作,當遇敵狀態時會停留在此行,非常有用。
4、turn_about(value1, value2)
轉身,和NPC說話時用到此句,value1為方向,1001-1008代表北-西北,value2是要等待伺服器返回的頭。
5、end_action_set
當由腳本控制戰斗時,當戰斗設置結束後一定要用此句將設置結果發送出去。
6、setobj(v1,v2,v3,v4,v5,v6)
當由腳本控制戰斗時,此語句計算攻擊的對象
v1=「人」、「寵」,表示要設置的是人的技能還是寵的技能攻擊對象
v2=「前排優先」、「後排優先」
v3=「血少優先」、「血多優先」
v4=怪物名稱,優先攻擊指定的怪物
v5=「普通」、「強力」、「超強」,指定技能類型
v6=「人」、「寵」、「敵」,表示要攻擊對象
7、wait(value1)
等待到到伺服器返回value1指定的頭才進行下一句。
RECV_HEAD_lo 進入登錄選擇畫面,返回剩餘點數
RECV_HEAD_DRQU 登錄成功
RECV_HEAD_GUZ 登錄的城市,登錄點
RECV_HEAD_iqQs 本人代碼
RECV_HEAD_Xv 人物狀態
RECV_HEAD_ZJ 技能
RECV_HEAD_adZ 聊天
RECV_HEAD_kG 名片表
RECV_HEAD_Bgfl 名片
RECV_HEAD_xG 接收到的郵件
RECV_HEAD_rYTy 一個寵物的基本資料
RECV_HEAD_ik 一個寵物的(3)魔力腳本源碼擴展閱讀
RECV_HEAD_LvD 一個寵物的技能資料
RECV_HEAD_OEJd 戰斗資料
RECV_HEAD_PxU 物品表
RECV_HEAD_tn 移動物品
RECV_HEAD_JM 戰斗開始
RECV_HEAD_iVy 隊伍資料
RECV_HEAD_yPJ 戰斗結束
RECV_HEAD_crXf 與NPC說話後的選擇菜單
8、set_wait(value1)
設置等待的值,與wait語句配合使用,如:
set_wait(RECV_HEAD_crXf)
Npc(1, "", "")
wait(RECV_HEAD_crXf)
例子說明和NPC選1菜單,等待返回NPC下一組菜單值
9、printf(錢)
統計腳本效率,在腳本運行一次時調用此句。
10、WaitTime(value1)
等待value1毫秒。
11、high(value1, value2, value3)
切圖至東坐標value2,南坐標value3,value1為切圖值,一般都是10,偶爾為3。目前進出門換圖時應該用此語句,最大距離為6格。
12、InputVal(value1, value2, value3)
要求用戶輸入
value1為變數的名稱,某些語句中的值可以設置成此名稱,系統將替換成用戶的輸入值
value2為提示,顯示在對話框中
value3為默認值
13、ShowMessage(value1, value2, value3)
確定、取消對話框
value1顯示內容
value2類型,0為選否執行後面標後,1為選取是執行後面標號,2為無標號只顯示提示
value3標號
14、Zhuan(value1, value2, value3)
按設定坐標和方向移動,value1和value2為目標東南坐標,value3為方向,0-8表示北-西北。
15、ClearSysCue
清空外掛中系統提示隊列
為了防止腳本運行中重復判斷,在執行過判斷語句後可以調用該將系統提示數據清除。
⑷ 求助魔力寶貝FZ的東門練級腳本
復制到記事本上保存格式為script
set(timer, 100)
// 設定自動戰斗設置
set(auto_action, 自動戰斗, 1) // 開啟自動戰斗,0不自動戰斗,1自動戰斗
set(auto_action, 高速戰斗, 1) // 開啟高速戰斗,0不自動戰斗,1自動戰斗
set(auto_action, 高速延遲, 4) // 高速戰斗時的操作等待時間單位秒,3以上為好,不然容易斷線
set(auto_action, ActionCount, 4)
set(auto_action, ActionSpeed, 6) // 高速戰斗速度,0速度最低,6速度最高
set(auto_protect, AutoMoveType, 4) // 自動遇敵,1東西,2南北,3隨機,4原地
set(timer, 320) // 設置定時器,單位毫秒
set(timer1, 320) // 設置定時器,單位毫秒
begin:
if("狀態", Character._loc,null,"艾爾莎島",island)
getout
begin2:
if("狀態", Character._loc,null,"艾爾莎島",island)
goto(begin2)
begin3:
WaitTime(3000)
if("狀態", "GameMap.x.y", "=", "72,123", w2) // 西2登錄點
if("狀態", "GameMap.x.y", "=", "233,78", e2) // 東2登錄點
if("狀態", "GameMap.x.y", "=", "162,130", s2) // 南2登錄點
if("狀態", "GameMap.x.y", "=", "63,79", w1) // 西1登錄點
if("狀態", "GameMap.x.y", "=", "242,100", e1) // 東1登錄點
if("狀態", "GameMap.x.y", "=", "141,148", s1) // 南1登錄點
goto(begin)
e1:
goto(start)
e2:
goto(start)
w1:
turn_about(0, "") // 轉向北
nop
nowhile("法蘭城", 242, 100)
nop
goto(start)
w2:
turn_about(2, "") // 轉向東
nop
nowhile("法蘭城", 233, 78)
nop
goto(start)
s1:
turn_about(0, "") // 轉向北
nop
nowhile("法蘭城", 63, 79)
nop
turn_about(0, "") // 轉向北
nop
nowhile("法蘭城", 242, 100)
nop
goto(start)
s2:
turn_about(2, "") // 轉向東
nop
nowhile("法蘭城", 72, 123)
nop
turn_about(2, "") // 轉向東
nop
nowhile("法蘭城", 233, 78)
nop
goto(start)
start: //走到遇敵地點
moveto(241, 78)
moveto(243, 88)
if("人", "血", "<", 300, starsalet)
if("人", "魔", "<", 100, starsalet)
if("寵", "血", "<", 50, starsalet)
moveto(278, 88)
high(10, 281, 88)
nowhile("芙蕾雅", 1)
moveto(476, 196)
moveto(480, 195)
moveto(480, 194)
moveto(480, 186)
goto(startaction)
startaction:
begin_auto_action
if("人", "血", "<", 300, stopaction)
if("人", "魔", "<", 100, stopaction)
if("寵", "血", "<", 50, stopaction)
nop
ren("卡片?") // 要自動扔的東西
goto(startaction) // 繼續自動遇敵
stopaction:
nop
end_auto_action
nop
goto(begin)
island:
nowhile("艾爾莎島", 1) //從艾爾莎島登錄點開始
if("狀態",GameMap.x.y,null,"140,105",island2)
getout
WaitTime(2000)
goto(begin2)
island2:
set_wait(RECV_HEAD_crXf)
turn_about(1, "")
wait(RECV_HEAD_crXf)
Npc("4", "", "")
nop
nowhile("里謝里雅堡", 1)
nop
moveto(37, 82)
moveto(41, 86)
moveto(41, 97)
nop
high(10, 41, 98)
nowhile("法蘭城", 1)
nop
moveto(153, 120)
moveto(153, 130)
moveto(154, 130)
moveto(162, 130)
goto(begin3)
ee1:
moveto(242, 99)
moveto(242, 88)
moveto(221, 88)
moveto(221, 87)
moveto(221, 84)
goto(starsalet)
ee2:
moveto(233, 79)
moveto(233, 85)
moveto(232, 85)
moveto(221, 85)
goto(starsalet)
starsalet:
moveto(241, 88)
moveto(221, 87)
moveto(221, 84)
high(10, 221, 83)
nowhile("醫院", 1)
moveto(12, 37)
moveto(8, 33)
moveto(8, 31)
renew(north) // 恢復人寵
nowhile(renew)
nop
moveto(8, 33)
moveto(12, 37)
moveto(12, 38)
moveto(12, 41)
high(10, 221, 83)
nowhile("法蘭城", 1)
moveto(221, 88)
moveto(222, 88)
moveto(242, 88)
goto(start)
nop
⑸ 魔力寶貝npc時間限制腳本代碼解釋
魔力寶貝FZ的咬花腳本// 設定自動戰斗設置set(timer, 100) // 設置定時器,單位毫秒end_auto_actionset(auto_action, Auto, 1) // 開啟自動戰斗,0不自動戰斗,1自動戰斗set(auto_action, ActionCount, 5) // 高速戰斗時的操作等待時間單位秒,3以上為好,不然容易斷線set(auto_action, ActionSpeed, 6) // 高速戰斗速度,0速度最低,6速度最高set(timer, 320) // 設置定時器,單位毫秒set(timer1, 320) // 設置定時器,單位毫秒begin2:hao:WaitTime(2000) //防止腳本卡住getoutnopnowhile("艾爾莎島", 1)nopmoveto(140,105)moveto(143,107)moveto(157,93)turn_about(2, "")nopnowhile("艾夏島", 1)nopmoveto(92,113)moveto(94,117)moveto(96,121)moveto(106,121)turn_about(2, "")set_wait(RECV_HEAD_crXf)wait(RECV_HEAD_crXf)Npc("4","", "")wait(RECV_HEAD_crXf)Npc("1","", "")nopnowhile("回憶之間", 1)nopmoveto(8,8)hao2:WaitTime(3000)nowhile("回憶之間", 8, 8)set_wait(RECV_HEAD_crXf)turn_about(0, "")wait(RECV_HEAD_crXf)set_wait(RECV_HEAD_crXf)Npc("4", "", "")wait(RECV_HEAD_crXf)Npc("1", "", "")nopscriptstart:if("狀態", "GameCommand.ActionStat", "=", "0", hao2) // 判斷是否戰斗狀態goto(scriptstart)