石器百科 开始游戏

网页版说明

网页版是《石器时代》2.5 在浏览器里的重制:打开网页就能玩,不用安装客户端。它的目标是按原版规则运行——游戏数据全部来自原版 2.5 服务端(gmsv),玩法逻辑逐条对照 gmsv 的 C 源码移植,画面、音乐和界面取自原版客户端。线上地址是 https://sa.darlingtree.com 。

一、复刻了什么

原版的数据

服务端直接读取原版 2.5 的数据表,没有另编一套:

内容 数量 来源
遇敌区 665 块 encount.txt
怪物 2048 种 enemy.txt / enemybase.txt / group.txt
道具 12620 件 itemset.txt
NPC 4952 个 data/npc/**.create
传送点 2892 个 mapwarp.txt + npcgen_warp
地图 696 张 data/map(通行判定用 mapset.txt)
经验表 200 级 char/char_data.c 内建 NeedLevelUpTbls、enemyexptbl.h(exp.txt 只在私服宏 _USER_EXP_CF 下读取,且错开一格,不用)

出处:docs/STATUS.md 第 0 节。

原版的规则

下面这些系统都按 gmsv 源码移植(详细规则见各专题文章):

  • 建角与出生:48 种外观、20 点能力、四元素 10 点(最多两种、对面属性互斥)、4 个出生村和家乡宠物。见 新手入门。
  • 走路:原版的走路协议和地图通行表,斜走要两侧都能走,撞墙会被拉回。
  • 遇敌与怪物:走路累积遇敌、区域优先级、怪物组权重;怪物能力、经验、掉落按原版公式。
  • 战斗:伤害与元素克制、闪避、会心一击、反击、合击、出手顺序、偷袭、捕捉、逃跑、击飞、异常状态(毒/麻/眠/石/醉/乱)、宠物忠诚度、换宠、远程武器、魔法与道具、场地属性。见 战斗。
  • 人物与宠物:升级、加点、装备、宠物技能、骑乘规则、人物转生与宠物转生。见 人物属性与成长、宠物、骑乘、人物转生。
  • NPC:原版台词、商店(原版价格倍率)、护士、记录点、传送员、任务事件(changeevent / npc_eventaction 的条件和奖励)、NPC 敌人与道场、猜谜、猜拳、巴士与飞机、宠物店、宠物技能商店、家族银行。见 任务、世界与地图。
  • 社交:组队(最多 5 人)、交易、名片与邮件、宠物邮件、家族、家族 PK、庄园争夺与税收、决斗。见 社交、家族、决斗与 PK。

原版的画面与声音

  • 640×480 的原版界面,按浏览器窗口等比缩放;状态、宠物、道具、邮件、相簿、地图等窗口照原版重画。
  • 原版战斗画面:原版战斗背景(按脚下地面选)、20 个站位、全部动作帧、飘字和图标、指令栏、99 秒倒数。
  • 原版音乐与音效:地图曲按原版的「音调格」切换,战斗曲、捕获成功小曲、140 个音效和环境音都按原版时机播放。在「游戏设定」窗口里可以调整音乐、音效音量(0~15 档,原版设定)。
  • 浏览器规定网页不能自己发声,所以进游戏后第一次点击或按键之后才有声音。

出处:docs/STATUS.md「大地图性能 + 原版战斗画面」「音乐与音效」;client/src/engine/audio/AudioManager.ts(第一次 click / keydown / touchstart 才解禁音频)。

二、和原版不一样的地方

1. 地上的宠物在服务器重启后还在

在原版里,把宠物放到地上(放生)后,它会在原地站着等人来捡;服务器一重启,地上的所有东西都会消失。网页版额外把地上的宠物写进存档(ground-pets.json),服务器更新重启后宠物还在原地。

  • 放置时间照旧计算:地上的宠物放置超过 1800 秒(30 分钟) 没人捡就会消失(Petdeletetime=1800),重启不会让计时重来。
  • 跟着主人散步(溜宠)的宠物,在重启时没人带,会留在原地,主人可以自己捡回。
  • 地上的道具和石币不保存,重启后消失——这一点和原版相同(gmsv 也不存地上物件)。道具放置 1800 秒后消失;石币不足 10000 也是 1800 秒,10000 以上不会消失。

出处:tools/src/sa-server.ts 地上物件一节(「网页版额外把地上的宠物写进 ground-pets.json,部署重启后还在(gmsv 重启会丢)」、sweepGround、loadGroundPets);时限取自服务器配置 setup.cf(Petdeletetime=1800、Itemdeletetime=1800),私服可改。

2. 账号

  • 不需要另外注册:登录画面输入账号和密码,第一次使用的账号会自动注册,之后要用同一组密码登录。
  • 每个账号 2 个角色位。

3. 截图、全屏和离开页面

原版 网页版
F12 截图,存成 BMP 放在游戏目录 F12 截图,把 640×480 画面存成 PNG 由浏览器下载(文件名 sa_年月日_时分秒.png,0.5 秒内只截一张)
Alt+Enter 切换视窗模式 Alt+Enter 切换浏览器全屏
— 全屏时会锁住键盘,Ctrl+W 等浏览器快捷键交给游戏;一般窗口里误按 Ctrl+W 关分页,会先跳出「确定离开」的确认

出处:client/src/ui/sa/hud/hotkeys.ts(screenshot)、browserKeys.ts。

4. 设定存在浏览器里

常用文字(F1~F8)、自动战斗(AI 模式)设定、聊天行数与颜色等个人设定存在浏览器的本机存储里(原版是存在客户端目录的文件,如 AISetting.dat)。换一台电脑或换浏览器,这些设定要重新设。

5. 简化或尚未完成的部分

  • 家族 PK 场:原版要先预约时段,网页版改为对方族长同意后立即开战。
  • 战斗求救:别人加入你的战斗时,没有原版的「面向」判定和多人选择窗口;不能观战。
  • 魔法:反射、吸收、结界类魔法尚未移植。
  • 昼夜:没有昼夜变化,环境音一律按白天播放。
  • 素材缺失:有 207 个怪物/NPC 的精灵图在 2.5 客户端资料里不存在,显示为占位图;15 张冷门地图缺原版瓦片;1179 号骑乘图缺失。
  • 原版 2.5 本来就没有的:摆摊、职业技能等后期版本功能,这份 2.5 源码里没有,所以网页版也没有。

出处:docs/STATUS.md「尚未实现 / 与原版的差异」及第三轮说明。

6. 服务器设定

经验、宠物经验、战斗石币、掉率、捕获率、遇敌率、走路速度、战斗速度等,管理员可以在后台即时调整。本 Wiki 写的都是原版默认值,实际数值以所在服务器为准。

出处:docs/STATUS.md「管理后台 /admin」。

三、鼠标操作

操作 效果
左键点地面 走到那一格(自动寻路,绕开门和楼梯的传送格)
按住左键满 1 秒 移动模式:一直朝鼠标走,松开后仍有效,下一次左键点击才退出
左键点 2 格内的 NPC / 玩家 转身面对对方(不走过去)
右键点地面 转身面向那一格
右键点身边一格(含脚下)的物品 捡起来
画面上方的「名片」「交易」「加入队伍」「决斗」等按钮 对面前一格的玩家生效
面对巴士 / 飞机按「加入队伍」 上车(扣车资)

和 NPC 说话:面对 NPC 打字、按回车(野外时键盘输入直接进入聊天行,不用先点输入框)。

道具窗口:按住道具拖到另一格是换位置 / 装备 / 卸下;拖到窗口左边是丢在地上;双击使用道具或穿脱装备;右键做加工 / 料理的标记。

战斗中:点「攻击」再点目标,也可以直接点怪;右键取消选择。

出处:client/src/demo/MapViewBootstrap.ts setupInput、client/src/ui/sa/windows/ItemWindow.ts、client/src/game/battle/BattleScene.ts。

四、键盘快捷键

野外

按键 功能
回车 送出聊天(面对 NPC 时就是对 NPC 说话)
↑ / ↓ 聊天历史
Esc 关闭最上层的窗口;有「是/否」对话框时先关对话框
Ctrl+M 地图
Ctrl+S 状态
Ctrl+P 宠物(窗口打开时 ←→ 或 ↑↓ 切换宠物)
Ctrl+I 道具
Ctrl+E 邮件
Ctrl+A 相簿
Ctrl+T 交易
Ctrl+Q 游戏设定(同左上「选单」按钮)
Ctrl+W 动作窗口
Ctrl+J 家族频道快速加入 / 离开(原版 Ctrl+C 也是这个功能,但聊天行有焦点时网页版把 Ctrl+C 留给「复制」)
Ctrl+V / X / Z 交给输入框(贴上 / 剪下 / 复原)
F1~F8 插入第 1~8 条常用文字(在「游戏设定 → 聊天设定 → 记录文字」编辑)
F11 显示 / 隐藏头上的名字
F12 截图(PNG)
Page Up / Page Down 玩家模式 ⇄ AI 模式(自动战斗;野外和战斗中都可以切)
Alt+Enter 全屏

人物动作(站着不动时有效)

按键 动作 按键 动作
Ctrl+1 坐下 Ctrl+7 站立
Ctrl+2 挥手 Ctrl+8 走动
Ctrl+3 点头 Ctrl+9 晕倒
Ctrl+4 高兴 Ctrl+0 攻击
Ctrl+5 生气 Ctrl+- 防御
Ctrl+6 悲伤 Ctrl+= 受伤
Ctrl+\ 投掷

战斗中不能做动作。

聊天指令

写法 频道
/p 内容 队伍
/f 内容 家族
/w 名字 内容 密语

出处:client/src/ui/sa/hud/hotkeys.ts(EMOTE_KEYS、CTRL_WIN、F1~F8、F11、F12、PageUp/PageDown、Alt+Enter、Esc);client/src/ui/sa/hud/Chat.ts;client/src/ui/sa/windows/PetWindow.ts;docs/UI_ORIGINAL.md §B.5(原版热键对照)。

五、手机与平板

网页版可以用触屏玩,操作对应如下:

触屏操作 等于
点地面 左键点地面,走过去
点 2 格内的 NPC 转身面对它,并自动说一句话(常用文字第 8 条 F8,没设定就是「hi」)——代替电脑上的回车
点左下角的聊天输入行(画面坐标约 (0~420, 420~450)) 弹出系统键盘打字
在邮件、交易、道具窗口里快速连点两下 双击

一些注意事项:

  • 触屏上聊天行不会自动抢焦点(不然键盘会一直弹出来),要打字时再点聊天行。
  • 输入框统一用 16px 字,iOS 聚焦时不会自动放大页面;账号栏关闭了首字母自动大写和自动更正。
  • 目前触屏没有对应鼠标右键的操作,所以捡地上的物品、原地转向需要用鼠标。
  • 第一次碰触屏幕后才会有声音。

出处:client/src/demo/MapViewBootstrap.ts(onTouchTalk、isTouch)、client/src/serverGame.ts、client/src/ui/sa/hud/FieldUi.ts、client/src/ui/sa/core/touchInput.ts、client/src/ui/sa/hud/Chat.ts(keepFocus)。

六、登出与断线

  • 用游戏里的「登出」离开:角色会回到记录点再存档,下次从记录点上线。
  • 直接关掉网页或断线:角色停在原地存档。下次上线时照原版 CHAR_login 的规则处理:所在地图列在 appear.txt 里就送回记录点,列在 map_noexit.txt 里就送到该图指定的出口,其余地图从原地上线。
  • 战斗中断线:这场战斗里按「防御」处理直到战斗结束。

出处:tools/src/sa-server.ts(fullCharLogout、loginPosition 对照 CHAR_login、fullDisconnect)。