看板 mud_sanc 關於我們 聯絡資訊
這篇應該會一直編到星期日。現況是對 javascript 的程式撰寫算熟了, 對 asp 的部份原本忘光了,但最近在公司寫了兩支網頁檔邊複習,有想 起六七成左右,mud coding .. 我忘光的部份是純程式的部份,物件設定 、物件函數則大多還記得。 以下的東西不一定對,之後有發現錯的話會修正。 mud javascript asp ---------------------------------------------------------------------------- mixed tmps=({}); var tmps=[]; dim xxx = Array(給初始大小) tmps+=({"xxx"}); tmps.push("xxx"); ? mapping tmps; var tmps={}; set tmps = Server.CreateObject └全域宣告的話需另外做 ("Scripting.Dictionary") 初始化 偷懶的話用 Session 暫存也可以 以js取得絕對路徑檔名 files=Server.MapPath(files) tmp=read_file(files); fso=New ActiveXObject set fso = Server.CreateObject write_file(files,tmp); ("Scripting.File ("Scripting.FileSystem SystemObject"); Object") fs=fso.OpenTextFile set fs = fso.OpenTextFile (files,1); (files,1) tmp=fs.ReadAll(); tmp = fs.ReadAll fs.close fs.close fs=fso.OpenTextFile set fs = fso.OpenTextFile (files,8); (files,8) fs.write(tmp); fs.write(tmp) tt=keys(tmps); tt=Object.keys(tmps); tt = tmps.Keys j=sizeof(tt); j=tt.length; j = tt.Count str=""; str=""; str = "" for(i=0;i<j;i++) for(i=0;i<j;i++) for i = 0 to j-1? if(i%2==1) if(i%2==1) if i mod 2 = 1 then str+=tmps[tt[i]]; str+=tmps[tt[i]]; str = str & tmps(tt(i)) end if next write(str); document.write(str); response.write str tmps=explode(str,"\n"); tmps=str.split("\n"); tmps = split(str,vbcrlf) str=implode(tmps,"\n"); str=tmps.join("\n"); str = join(tmps,vbcrlf) replace_string(str, str.replace(/a/g,"b"); str = replace(str,"a","b") "a","b"); substr 也可以 if(strsrch(str,"xxx")) if(str.indexOf("xxx")) if InStr(str,"xxx") > 0 then { { return ; return ; response.end } } end if void xxx() function xxx() sub xxx function xxx {} {} end sub end function 忘記怎麼傳值了 ss=str[1..3]; ss=str.substr(1,2); ss = mid(str,1,2) 大概,每次都記不住 s=strlen(str); s=str.length; s = len(ss) s=atoi(str); s=parseInt(str); s = CInt(str) str=identify(x); str=JSON.stringify(x); ? sscanf(str,"%s %s", str.scanf(str,"%s %s", ? 忘了是否有這東西 s1,s2); s1,s2); ??嗯,不確定 我都偷懶用 split xxx=sort_array(xxx, xxx.sort(function(a,b) 我好像都偷懶用氣泡排序法 (: sort_xxx :)); { ... }); 或是用陣列先把鍵值的順序定好 mapping x=([ "1":"xx", "2":"xx", ]); mixed x=({"1","2"}); inherit ROOM; void create() { ::create(); seteuid(getuid(this_object())); set("light",1); set("short","一間房間"); set("long",@LONG 這是一間房間,貼著一張告示(note)。 LONG ); set("exits",([ "north":__DIR__"002", "south":__DIR__"003", ])); set("exits/east",__DIR__"004"); set("item_desc/note",@LONG 這是一張A4大小的告示。 LONG ); set("objects",([SM"dove":3,])); set_npcs(({"... 呃忘記怎麼設定了..})); reset(); } void init() { add_action("drink_xxx","drink"); add_action("jump_xxx","jump"); } int drink_xxx(string str) { if(!str || str=="") return notify_fail("你要喝什麼?\n"); if(str!="water") return notify_fail("drink: 這裡沒有 "+str+" 這個東西可以喝喔!\n"); return notify_fail("drink: 你喝了一口水,感覺舒服多了。\n"); } int jump_xxx(string str) { object ppl=this_player(); write(HIW"你縱身一躍,跳到了另一個房間!\n"NOR); ppl->move_player(__DIR__"005","SNEAK"); tell_room(environment(ppl),ppl->query("short")+"突然出現在這個地方!!\n"); return 1; } mixed usr=users(); foreach(ppl in usr) if(ppl && interactive(ppl)) tell_object(ppl,"再一分鐘就要關機了,請趕快 quit!\n"); tmps=keys((mapping)ppl->query("skill")); str=""; foreach(sk in tmps) str+=sprintf("%-36s : %-d\n",skill_name(sk)+"("+capitalize(sk)+")", ppl->query("skill/"+sk)); ^^^^^^^^^^這裡忘了 lower_case 倒是還記得 r=random(100); switch(r) { case 1: ...; break; case 2: case 3: ,,,; break; default: ...; break; } if(a && b && c) if(a || b || c) if((a && b) || (c && d)) while(i++<50) { } for(i=0;i<100;i++) { if(xxx) continue; else if(ooo) break; } simul_efun 跟 efun 有些也忘光了都要回想一下 simul_efun 的部份 string files,str,tmp; int a,b,x,i,j; mixed tmps=({}),objs; object me,ppl,obj; files=file_name(this_object()); files=base_name(this_object()); me=this_player(); if(!wizardp(me)) return notify_fail("你不是巫師喔!\n"); varargs mixed questing(string kind,string names,string quest_num,mixed vars) tell_object(me,"test.\n"); tell_room(environment(me),"test",({me})); write("test.\n"); say("test.\n"); shout("test.\n"); show(me,ppl,"$N對$O擊出一記肘擊!"); int save_room() { save_object(base_name(this_object())); return 1; } int restore_room() { restore_object(base_name(this_object())+".o"); return 1; } if(sscanf(str,"%s %s",s1,s2)==2) { ... } tmps=sort_array(tmps,(: sort_tmps :)); int sort_tmps(string s1,string s2) { int a1=atoi(s1),a2=atoi(s2); return strcmp(s1,s2); a1>a2 ? return 1 : a1<a2 ? return -1 : return 0; } int t=time(); string times=ctime(t); ppl->shut("$N對$O使出一記肘擊",5000,1000,"dam",tar); ppl->shut2("$N對$O使出一記肘擊",5000,1000,"dam",tar); 常用的 efun,虛擬物品系統,家族系統,天空城農場系統, 大樂透系統,投票系統,... 這些忘光了,但這些系統大部份 的主程式不需要再動,只需要動設定值,或是動腳本即可。 到星期六早上為止,自覺大概想起六成左右。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.66.104 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/mud_sanc/M.1608905926.A.EB1.html
laechan : 看起來不用到星期日應該星期六就可以想起怎麼coding 12/25 22:26
※ 編輯: laechan (114.33.66.104 臺灣), 12/26/2020 09:14:52
laechan : 再複習一次 12/29 08:56
ablegod : 小寶 佩服你堅持了20年 12/31 00:23
iluy : 01/07 21:35