底下是某个打算以 javascript 撰写的网页设计草图
BGM
https://www.youtube.com/watch?v=9NxrQipUkwg
> ls
area.h
area_long.c
area_long.h
area_room.c
gmonster.c
map1
map1x
map2
map2x
mob
script_area
script_gmob
script_smob
smonster.c
> more area.h
// 房间最多生几只怪
#define MAX_MOBS_IN_ROOM 5
// 房间经过多久(秒)重生怪物
#define MOB_REBORN_TIMES 300
// 房间怪物资料
// "档名",等级,({"id",..}),"名字",道德,金钱,只数,({掉落物}),({额外设定})
#define MOBS_DATA ({\
({"mob1",137,({"ice lizard","lizard"}),HIC"冰"HIW"蜥魔"NOR,\
-26000,500,5,({}),({"data","anti/fire",-50}),}),\
({"mob2",142,({"ice gargoyle","gargoyle"}),HIC"冰"HIW"翼魔"NOR,\
-28000,500,5,({}),({"data","anti/fire",-50,"temp","flying",1}),}),\
({"mob3",164,({"ice elemental","elemental"}),HIC"冰"HIW"元素"NOR,\
-33000,500,3,({}),({"data","adv/str",5000,"data","anti/all",50,"data","anti/fire
",-50}),}),\
({"mob4",199,({"frost giant","giant"}),HIB"寒冰"HIW"巨人"NOR,\
-82000,500,1,({}),({"data","adv/con",5000,"data","adv/str",5000}),}),\
})
理论上,虽然整合于同一个网页,但各个 part 要有独立的执行按钮。
有默认 D: 槽目录但允许开发者在头几行找到可更改的地方。
跳过模拟阶段,先求有再求好。
最上方设定一排快捷超连结
area_room mapx long.h area.h ....
搭配 <a href=#xx> 然后设定 <a id=xx> 去做跳动,以及 回最上面。
area_room 区可透过整合的方式产生,有数个 textarea 框并且都附上
范例,在实际的 area_room.c 档内用特定的 // 做 explode 的分隔。
审慎考量 area_room 的所在位置,最好它的下方就是地图区,这样才会
方便看到房间号码,鼠标往下滚马上就看到号码,再往上滚做设定。
8/17 updated: 大概是这种感觉
https://i.imgur.com/kYpUUhc.jpg
1.实际上只需分为三个部份,其它都是写死的不用动
2.按下存盘键时就储存为 area_room.c
3.房间short设定区看起来需有 default 值,这样就算这三格都空白的
情况下按下存盘键,产生的 area_room.c 也能 update 过并可执行
地图后必定是三段叙述区,规划三个 textarea 框,每个框高度不需要
很高。应支援自动加上 "",\ 才会省事。必须要能随时按下就存盘以及
按下就读取。
读写档及 put 到 textarea,必须考量到 \n 的拆解。
8/17: updated 大概长这样
https://i.imgur.com/JiEvSCT.jpg
1.左边是 mapx 地图,右边是加上编号的 map 地图
2.右边的 map 地图会自动判断目前房间数
3.目前暂时用存盘左边的 mapx,再透过重新加载整个网页的方式
来更新右边的 map,理论上写一颗按钮即时转换也可以
4.存盘右边 map 地图的按钮今天会写好
目前离综览还很远但已略具雏型,最近会再把麻烦的东西先弄好,简单
的留到最后才做。
先求有再求好,写完三段叙述区就可以先测试。测试结果满意再继续往
下写。
D:\mud\long1.h [读取] [存盘]
┌──────────────────────────────┐
│ │
│ │
│ │
│ │
└──────────────────────────────┘
D:\mud\long2.h [读取] [存盘]
┌──────────────────────────────┐
│ │
│ │
│ │
│ │
└──────────────────────────────┘
D:\mud\long3.h [读取] [存盘]
┌──────────────────────────────┐
│ │
│ │
│ │
│ │
└──────────────────────────────┘
横的感觉比直的优点多一点,至少长叙述不会断行,至于列数就维持目前
的设定,毕竟叙述多的区域不常见,字体则 16px 看起来可读性最好。
重载钮及存盘钮都必须有 Y/N confirm。
存盘钮要有自动备份机制,备份档统一存到特定目录。
网页重新整理时就要自动读取相关档案并加载。
8/16 updated: 大概是这样的感觉
https://i.imgur.com/0XpUTHg.jpg
1.网页第一次开启时,若没有 d:\mud 目录会自己建立
2.网页重新整理时自动加载档案内容,若档案不存在就不加载
3.读取及存盘都需要 confirm
4.已确认写入的内容有正常换行,且内容也正确
5.三个 .h 档上传至服务器后也能正常被 area_long.c 存取
[/u/l/laechan/area/sides/mine/001 ]
东棱矿坑1F
整座矿坑以高强度木材加固矿坑的洞壁,开采期间极少发生事故
,每一吋的洞壁都有昔日带着铁锹和尖嘴镐的矿工们辛苦开凿的
痕迹,经常可在这里听到嘎吱嘎吱的回声从矿坑的深处传来呢!
明显出口有: east 和 out.
<table>
<tr><td>D:\mud\long1.h 
<input type=button value='读取' onclick='long_file_read(1)'> 
<input type=button value='存盘' onclick='long_file_save(1)'><BR>
<textarea id=long1 style="font-size:16px;background-color:#93ED93;"
cols=80 rows=13 id=long1></textarea><BR></td></tr>
<tr><td>D:\mud\long2.h 
<input type=button value='读取' onclick='long_file_read(2)'> 
<input type=button value='存盘' onclick='long_file_save(2)'><BR>
<textarea id=long2 style="font-size:16px;background-color:#93ED93;"
cols=80 rows=13 id=long1></textarea><BR></td></tr>
<tr><td>D:\mud\long3.h 
<input type=button value='读取' onclick='long_file_read(3)'> 
<input type=button value='存盘' onclick='long_file_save(3)'><BR>
<textarea id=long3 style="font-size:16px;background-color:#93ED93;"
cols=80 rows=13 id=long1></textarea><BR></td></tr>
</table>
部份 part 采全档内容加载及存盘,例如 gmonster.c、smonster.c,
至少三个框同上,每个框均加载全档内容,就可在网页上直接修改。
以下这一部份最花时间,所以必须考量是否有必要写进网页,若有必要,
将这一区块放在哪里较好? 以及是否给全档编辑就好?
D:\mud\area.h
房间最多生几只怪(ex: 5): TEXT输入框 or select下拉框
房间经过多久(秒)重生怪物(ex: 300秒): TEXT输入框 or select下拉框
房间怪物资料
怪物档名: __ 等级: __ id: __ 中文名: __ 道德: __ 金钱: __ 只数: __
(额外设定资料: 资料区: __ 字段: __ 内容: __)
额外HP加成: __
额外属性加成: fel:[] str:[] dex:[] ...
是否会飞:
掉落物设定
[下拉] [机率] +
[下拉] [机率] +
[下拉] [机率] ?
额外HP加成及属性加成的部份,自动套用 ({"data","hp",xxx,"data","hp_src",xxx})
({"data","adv/con",xxx})
是否会飞的设定,自动套用 ({"temp","flying",1})
房间怪物资料的部份,在 sanc 跑一份总怪物列表后存成档案,供这个
网页下拉使用? 一开始当然不写这个,先求有再求好。
虚拟物品列表的部份,在 sanc 跑一份总表后存成档案,供这个网页下
拉使用,这个必须要写。
mob_drop 必须给一个框,跑出设定指令:
cd /d/break/zoon/mob
vobjs -mob_drop skipper set m033 = 500
vobjs -mob_drop antelope set m017 = 300
vobjs -mob_drop monkey set m093 = 300
vobjs -mob_drop locust set m055 = 500
vobjs -mob_drop sheep set m017 = 300
其中 cd 目录的部份可以之后自己手动加,底下的指令全部程式产生。
以上最花时间。
map 的部份透过网页产生的地图,因为实际上会有几层并不一定,初期
也不一定要做,但是假若 d:\mud 目录下有读到 map1x、map2x 这样的
档名,则预读进来做显示亦无不可。
产生地图的网页就放在这个整合网页的上方以超连结的型式呈现在另一
个分页即可,由那边去跑出结果再存回这里即可。
理论上 map1x、map2x 手动较好,程式可读进来,有几个就读几个,然
后再写并列的全型地图列于右侧即可,这样有几层就显示几张。
script_area
script_gmob
script_smob
有几个 script 档也要在整合网页写几个,其中 script_area 自己单独
一列一个 textarea 框,mob 的 script 则可以并列。原则上可默认mob
共有三个 script 并自动产生默认档,wiz 有需要自己改一改就好,有用
到的再改即可。
最终必须测试这些档案 ftp 到 server 后,中文及换行部份是否可以正
常显示,最后必须做的事:
1. 编写 area_room (暂)
2. makearea -read map1x、map2x、..
3. trans map1(,map2,..) to here by script_area
未鉴定防具
[编辑中]