【 原 創 】 Array 陣列教學
本帖最後由 哆啦ˇ 於 2009-11-18 07:19 PM 編輯Array 在 程 式 設 計 上 翻 作 陣 列
陣列 猜 穿 了 也 只 是 一 大 堆 的 變 數 結 合 在 一 起 變 成 較 有 系 統 的 變 數
就 像 是 Word 和 Excel 的 差 別 一 樣
Word內 一 行 可 以 輸 入 一 筆 資 料
Excel內 一 行 可 以 輸 入 多 筆 資 料
使用*set <變數名稱>[陣列編號],<值>;
改變單個變數值
Ex:
set a,10;
*setarray <變數名稱>[<初始陣列編號>],<值>,<值>....;
改變多個變數值
*如<初始陣列編號>省略則以0開始
Ex:
setarray a,20,30,40;
實作*搭配for setarray Unitem,1002,1003,1004; for(set .i,0; getarraysize(Unitem)>.i;set .i,.i+1) delitem Unitem[.i],countitem(Unitem[.i]);*排序 setarray List,10,32,15; for(set .i,0;getarraysize(List)>.i;set .i,.i+1) for(set .j,0;getarraysize(List)>.j;set .j,.j+1) if(List[.i]>List[.j]) { set temp,List[.i]; set List,List[.j]; set List[.j],temp; }結果:List→10,15,32;
*玩家列表 OnPCLoginEvent: set $@user,$@user+1; set $@OnlinePCList[$@user],getchar(0); end;
OnPCLogoutEvent: for(set .@i,0;.@i<$@user;set .@i,.@i+1){ if($@OnlinePCList[.@i]==getcharid(0)) { set $@OnlinePCList[.@i],0; for(set .@j,.@i;.@j<$@user;set .@j,.@j+1) { set $@OnlinePCList[.@j],$@OnlinePCList[.@j+1]; } set $@user,$@user-1; } } 其他相關 *getinventorylist;*getskilllist;*npcshopattach "<name>"{,<標記>};*warpwaitingpc "<地圖名>",<x>,<y>{,<number of people>};*getpartymember <party id>,{<類型>};*getarraysize(<array name>);*deletearray <array name>[<first value>],<how much to delete>;*cleararray <array name>[<first value to alter>],<value>,<number of values to set>;*getelementofarray(<array name>,<index>);*getmobdata (<GID>,<arrayname>); 重點*永存帳號變數、永存人物變數 不能使用陣列
#1
for(set .i,0;getattaysize(List)>.i;set .i,.i+1)
for(set .j,0;getattaysize(List)>.j;set .j,.j+1)
getarraysize(List) 才 對
你放這篇教學其實很棒
不過我相信很多初學者會看不懂 打太快打錯= ____ = #2
想 當 初 你 我 也 都 是 看 不 懂 的 那 個
感恩大大
看不太懂ˇ還是感謝大大的教學感恩 回復 海神夜:
Array 在任何一款Athena 都可以使用
只是 "其他相關" 較為不同
其他相關 的來源是 EA 好有深度的教學只懂一點點啊
真是OOXX啊:96: 感謝大大教學~~!
我終於董呵 不會啦= " =
其實就算是初學者
不懂自己實做一次就懂了="=
這篇教學很棒
簡單明瞭="= 看的十分清晰
頁:
[1]