AlexTao |
2006-04-26 11:54 |
函式教學文件
GetChar()函式
語法
GetChar(string name)
功用
得到目標ID
用法
GetChar("player"); 得到第一位玩家的ID(這是沒用的指令,因爲第一位玩家一定是1號)
GetChar("vip");得到己方首 編號,這個指令在SN檔中使用會容易得到-1(不存在)的值,僅能用在NPC檔中才能正確啓用。
GetChar("enemyvip");得到敵方VIP編號,這個指令在SN檔中會不易指定,用在NPC檔中就能正確啓用。
GetChar("flag ");得到持鏢者編號,沒有持鏢者值一定是-1.
GetChar("XXX ");得到指定人物的編號,遊戲中沒有這個人物值一定是-1.
範例:
int a;
a = GetChar("重樓");
如果重樓不存在
a的值爲-1
如果重樓存在
a就等於重樓的當前ID
GetAnyChar()函式
語法
GetAnyChar (string name)
功用
得到任一目標ID
用法
GetAnyChar("player"); 得到第一位玩家的ID(這是沒用的指令,因爲第一位玩家一定是1號)
GetAnyChar("vip");得到己方首 編號,這個指令在SN檔中使用會容易得到-1(不存在)的值,僅能用在NPC檔中才能正確啓用。
GetAnyChar("enemyvip");得到敵方VIP編號,這個指令在SN檔中會不易指定,用在NPC檔中就能正確啓用。
GetAnyChar("flag ");得到持鏢者編號,沒有持鏢者值一定是-1.
GetAnyChar("XXX ");得到指定人物的編號,遊戲中沒有這個人物值一定是-1.
範例:
int a;
a = GetAnyChar("重樓");
如果重樓不存在
a的值爲-1
如果重樓存在
a就等於重樓的當前ID
這個指令基本上跟GetChar()一樣,但不一樣的是它可以在NPC檔中偵測HP<=0的人物,NPC檔中只要NPC的HP=0, GetChar()將不再運作.如果你用NPC集合檔則 用上這個指令.SN檔只要用GetChar()即可
GetHP()函式
語法
GetHP (int ID)
功用
得到任一ID目標的目前生命值
範例:
int a;
int b;
a = GetChar("重樓");
b = GetHP (a);
如果重樓不存在
b的值爲-1
如果重樓存在
b就等於重樓的當前生命值
GetMaxHP()函式
語法
GetMaxHP (int ID)
功用
得到任一ID目標的最大生命值,(經我測試應該說是初始值纔對,這個值不會因吃華陀而改變…所以我的結論是得到初始值)
範例:
int a;
int b;
a = GetChar("重樓");
b = GetMaxHP(a);
如果重樓不存在
b的值爲-1
如果重樓存在
b就等於重樓的初始生命值
GetTeam()函式
語法
GetTeam (int ID)
功用
得到任一ID目標的所在隊伍.
範例:
int a;
int b;
a = GetChar("重樓");
b = GetTeam(a);
如果重樓不存在或重樓並沒有分隊b的值爲0
如果重樓在流星,b的值爲1
如果重樓在蝴蝶,b的值爲2
GetEnemy()函式
語法
GetEnemy(int ID)
功用
得到任一ID目標他當前的目標敵手ID.
範例:
int a;
int b;
a = GetChar("重樓");
b = GetEnemy(a);
如果重樓不存在或重樓目前並沒有鎖定對手b的值爲-1
如果重樓沒有分隊已鎖定預設對手,b的值爲1(就是玩家)
如果重樓已鎖定對手,b的值爲對手的ID
如果b值等於-1但不是重樓不存在照成的,那堋NPC可能會站著發呆.
GetGameTime()函數
語法
GetGameTime()
功用
得到入遊戲後所過的秒數.
範例:
int a;
a = GetGameTime() + 30;
Say(2, "已經過了",a,"秒")
由ID 編號2號的NPC計算目前時間並說出來.
ChangeBehavior()函式
語法
ChangeBehavior(int id, string behavior, ...)
功用
得到目標ID
用法
ChangeBehavior(int id, "wait");NPC在原地做警戒.
ChangeBehavior(int id, "idle");NPC在原地不動.
ChangeBehavior(int id, "run");NPC在出生點附近亂跑(大多是繞圈圈)。
ChangeBehavior(int id, "follow", string name/ int id);
NPC跟隨到指定人物[人物參照GetChar()函式]或是指定ID人物.
ChangeBehavior(int id, "patrol", int waypoint1, int waypoint2..);
NPC在所規定的巡邏點實施巡邏.
ChangeBehavior(int id, "attacktarget", int idx, int a);
NPC不顧一切的跑到IDX的目標位置,若a爲不存在則爲跑到目標位置,a值大於0則到目標位置實施攻擊.
ChangeBehavior(int id, "Kill", string name/ int id);
NPC追殺指定人物[人物參照GetChar()函式]或是指定ID人物,若爲同隊則同於"follow"副指令.
範例:
int a;
SetTarget(1, "char","景天");
a = GetChar("重樓");
ChangeBehavior(a, "wait");//重樓在原地做警戒,看到敵人就跑去攻擊.
ChangeBehavior(a, "idle");//重樓啥事情都不做.
ChangeBehavior(a, "run");//重樓在出生點附近亂跑.
ChangeBehavior(a, "follow", "player");//重樓跟著玩家行動
ChangeBehavior(a, "patrol", 1, 3, 5, 7, 9);//重樓在1,3,5,7,9的巡邏點巡邏
ChangeBehavior(a, "attacktarget", 1, 1);
//重樓不顧一切的跑到景天旁邊不管他是不是同隊先海扁一下再說
ChangeBehavior(int id, "Kill", "景天");
//重樓追殺景天如果是同隊則死命跟著景天.
Perform()函式
語法
Perform(int id, string pose, ...)
功用
叫NPC做指定動作
用法
Perform (int id1, "faceto", int id2);id1的NPC面朝著id2
Perform (int id, "say",string say);NPC送出交談內容.
Perform (int id, "pause",int min);
NPC做出上個動作後過了幾秒再做下個指定動作,但程序仍然在執行中。
Perform (int id, "aggress");NPC做出挑釁的動作.
Perform (int id, "jump");NPC做出跳躍的動作.
Perform (int id, "attack");NPC做出攻擊的動作.
Perform (int id, "guard", int min);NPC做出防禦動作幾秒鐘.
Perform (int id, "crouch", int min); NPC做出蹲下動作幾秒鐘.
Perform (int id, "use", int itemID);NPC使用編號道具.
範例:
int a = GetChar("重樓");
int b = GetChar("景天");
Perform (a, "faceto", b);//重樓面對景天
Perform (a, "say", "你上次砍我文章,覺悟吧!");//重樓送出了交談內容
Perform (b, "say", "放棄吧!你是打不贏我的");
Perform (a, "pause",1);//重樓等待了1秒鐘
Perform (a, "aggress");//重樓做出了挑釁動作
Perform (b, "attack");//景天做攻擊了一下.
Perform (a, "jump");//重樓跳了一下
Perform (a, "guard", 1);//重樓做出防禦動作1秒鐘.
Perform (a, "crouch", 1);//重樓怕被跳殺蹲下1秒鐘.
Perform (a, "say", "看我的厲害!哈哈");
Perform (a, "use", 2);//重樓使用了華陀最大生命+50.
Perform (a, "use", 1);//重樓使用了肉包生命回覆30.
Perform (a, "use", 3);//重樓使用了 皮防禦上升
Perform (a, "use", 4);//重樓使用了嗜戰最大生命+50.
Perform (a, "use", 7);//重樓使用了風水隱身
Perform (a, "use", 8);//重樓使用了氣元氣力全滿
Perform (a, "say", "哇哈哈!去死吧");
...重樓使出了大絕...被躲掉了==!!..被修理了!
Perform (a, "say", "該死!怎麼會這樣?");
Perform (a, "use", 20);//重樓使用了神骨最大生命到達999.
Perform (a, "use", 15);//重樓使用了神靈生命回覆1/2.
Perform (a, "use", 19);//重樓使用了爆怒攻擊力大幅提升
Perform (a, "use", 34);//重樓使用了嗜血攻擊力再提升.
Perform (a, "use", 23);//重樓使用了火屬練化武器
Perform (a, "use", 40);//重樓使用了金鐘罩防禦上升
Perform (a, "use", 8);//重樓使用了氣元氣力全滿
...重樓再度使出了大絕...又被躲掉了==!!..又被修理了!
Perform (a, "use", 27);//重樓使用了蛋糕變身雪人
Perform (a, "use", 29);//重樓使用了圍巾防禦上升
Perform (a, "use", 30);//重樓使用了手套攻擊提升
Perform (a, "use", 31);//重樓使用了長靴速度提升.
Perform (a, "use", 32);//重樓使用了頭套自動回血
Perform (a, "use", 5);//重樓使用了貓足速度提升
Perform (a, "use", 41);//重樓使用了豹靈速度大幅提升
Perform (a, "say", " !放你一馬...");
...重樓以超快的速度繞跑了....
Perform (b, "say", "= =!!");
PlayerPerform()函式
語法
PlayerPerform(int id, string pose, ...)
功用
叫玩家做指定動作,這個指令區網沒有作用.
用法
PlayerPerform ( "say",string say);
送出孟星魂交談內容(這是電腦會設定玩家名稱爲孟星魂)
PlayerPerform ("pause",int min);
孟星魂做出上個動作後過了幾秒再做下個指定動作,但程序仍然在執行中。
PlayerPerform ("aggress");孟星魂做出挑釁的動作.
PlayerPerform ("jump");孟星魂做出跳躍的動作.
PlayerPerform ("crouch", int min); 孟星魂做出蹲下動作幾秒鐘.
PlayerPerform (int id, "use", int itemID);孟星魂使用編號道具.
PlayerPerform (int id, "block", 0&1);
孟星魂暫時不能操控開關1爲不能控制0爲可以
範例:
可參考Perform ()函數
StopPerform()函數
語法
StopPerform(int id);
功用
停止AI的指定動作.
範例:
int a;
a = GetChar("重樓");
Perform (a, "guard", 1);//重樓做出防禦動作1秒鐘.
StopPerform(a);//取消剛纔指定的動作.
SetTarget()函式
語法
SetTarget(int idx, string type, ...)
功用
設定IDX編號所代表物
用法
SetTarget(int idx, "char", string name);設定IDX編號物件爲某一玩家或NPC
SetTarget(int idx, "waypoint", int waypoint);設定IDX編號物件爲某一路徑點
範例:
可參考ChangeBehavior()函式的範例
Distance()函式
語法
Distance(int idx1, int idx2);
功用
計算IDX1及IDX2之間的距離
範例:
SetTarget(0, "char", "重樓");
SetTarget(1, "char", "景天");
int a = Distance(0, 1);
a的值爲座標值,倘若重樓的座標在1202,111,0景天的座標爲-101,111,0,那堋a值即爲1202+101的數值,300以內的數值幾乎就算是面對面了.
Rand()函式
語法
Rand(int n);
功用
得到亂數值
範例:
int a = Rand(10);
a的值即爲0-9的其中一值
AddNPC()函式
語法
AddNPC(string npc);
功用
加入NPC
範例:
AddNPC("npc13_01");
加入冷燕到流星隊
RemoveNPC()函式
語法
RemoveNPC(int id)
功用
指定NPC離開
範例:
int a = GetChar("重樓");
AddNPC(a);
指定重樓離開遊戲中
Say()函式
語法
Say(id, a, b, c, ...);
功用
送出組合式談話內容
範例:
int a = GetChar("重樓");
int h = GetHP(a);
Say(a, "我現在有", h,"滴的血");
通報自己尚有多少血. |
|