版主: ぁい希茜

图文——标题:[工程结束]仙剑脚本释义·全(包括若干游戏中未用的脚本)

楼主发表于: 2006年12月11日 16:16:51 短消息
qx123
  • 级别 注册用户
  • 称谓 小石头
  • 精华 0
  • 发贴 0
  • 积分 0
  • 游戏网金币 0
  • 在线时间 0小时
  • 注册时间 2007-1-22
  • 最后登陆 2007-1-22

[工程结束]仙剑脚本释义·全(包括若干游戏中未用的脚本)

[工程结束]仙剑脚本释义·全(包括若干游戏中未用的脚本)

这个由夜烟兄起始、外塞之雾兄和ylmson兄先后作出极大贡献的工程,最近终于接近结束。让我们向各位前辈致敬!
这是所有释义文件的格式:


QUOTE:
@xxxx: 指令名 参数一类型 参数二类型 参数三类型
作用描述
参数一 含义
参数二 含义
参数三 含义
示例
补充说明(因各种原因,示例和补充说明很不完整)

其中第一行的内容列表中已经给出。各参数的类型可能为Int16、UInt16、Null、Boolean或XXXID,最后一种情况就会去对应的XXXID.txt去寻找释义,这些txt内的释义格式同上。
示例可以用脚本翻译器浏览脚本获得。参见脚本翻译器beta发布贴:
(此帖亦已随本帖原帖而去,需要者请到藏宝阁研究区下载)
下面是主释义scr_desc.txt的详细内容。



QUOTE:
@ffff: 显示对话 MessageID
' ':单引号对中的内容以红色显示 1A
- -: 减号对中的内容以青色文本显示 8D
" ":双引号对中的内容以黄色显示 2D
(:表情,汗滴
):表情,爱心
~n:对话自动中断,不须按空格。n为文字显示完毕后,等待的时间
$n:文字显示速度,n越大,显示越慢(影响之后的所有文字显示,直至遇另一个$n或重新游戏而改变)
自动脚本无
@0000: 停止执行
@0001: 停止执行,将调用地址替换为下一条命令
自动脚本无
@0002: 停止执行,将调用地址替换为 ScriptID Int16 ;NewScript Count(continues after Count replacements are made, 0=always replace)
@0003: 跳转 ScriptID Int16 ;Script Count
自动脚本处理到跳转的第一条
@0004: 调用 ScriptID ObjectID;Script 调用者 未指定则为当前对象 脚本重入
自动脚本处理完整个调用
@0005: 清屏 Int16 Int16 Boolean ;?若当前不在地图层,还原到地图层;否则重新生成画面,若参3非0,还要事先更新角色信息
自动脚本无
@0006: 几率继续 Int16 ScriptID
自动脚本处理到继续处(若继续)
@0007: 开战 EnemyTeamID ScriptID ScriptID ;EnemyTeam DefeatScript EscapeScript
自动脚本无
@0008: 将调用地址替换为下一条命令
自动脚本无
@0009: 自动执行N循环 Int16 Boolean Boolean;Time 是否触发事件 是否更新进主角步伐表格。
@000a: 选否则继续 ScriptID
自动脚本无

@000b: 本对象向西行
@000c: 本对象向北行
@000d: 本对象向东行
@000e: 本对象向南行
@000f: 本对象转向 DirectionID Int16 ;Direction Frame 方向为负时跳过方向的设置
@0010: 本对象走到 Int16 Int16 Int16 ; XBlock YBlock HalfBlock, no edge check 速度3
@0011: 本对象互斥慢速走到 Int16 Int16 Int16 ; XBlock YBlock HalfBlock, no edge check 速度2
以上2指令不到目的地不执行下一条,重复执行本条,但本次执行终止。
@0012: 相对移动对象 ObjectID Int16 Int16;
@0013: 绝对移动对象 ObjectID Int16 Int16;
@0014: 本对象置帧 Int16
@0015: 设置队员方向和帧 DirectionID Int16 TeamMemberID ;Direction Frame# TeamMember
@0016: 设置对象动作 ObjectID DirectionID Int16 ; Object #WalkingFramesPerDirection CurrentFrame
ObjectID==0->啥都不干,<0->当前对象,在当前图内图内设置,不在绝对设置。
@0017: 设置部位属性 BodyPartID AttributeID Int16
@0018: 装备 BodyPartID WordID
@0019: 增加属性 AttributeID Int16 CharacterID ; 这里若ID<=0,则为当前对象
@001a: 设置属性 AttributeID Int16 CharacterID;属性 数值(战时情况下修改战像和合体法术直接修改战时数据结构) 人员/0->战时
@001b: HP回复 Boolean Int16
@001c: MP回复 Boolean Int16
@001d: HPMP回复 Boolean Int16 Int16 ;ApplyToAll HPMP MP(if specified, arg2 becomes HP)
EXE中arg3根本未实现,只能HMP同增。
@001e: 增加金钱 Int16 ScriptID ;Amount InsufficientMoneyScript
@001f: 获得道具 WordID Int16 ;Item Quantity 0同1
@0020: 用去道具 WordID Int16 ScriptID ;Item Quantity InsufficientScript
包括装备中道具,若实在不够,按队伍序往下拆。
@0021: 伤敌 Boolean Int16
@0022: 我方复活 Boolean Int16 ;ApplyToAll 复活清空毒、状态,状态残余回合数>999则不变
@0023: 卸下装备 Int16 BodyPartID ;队伍第x人 BodyArmorPart (0 = all)
@0024: 设置对象自动脚本 ObjectID ScriptID ; 参见脚本16
@0025: 设置对象触发脚本 ObjectID ScriptID ; 同上
@0026: 启动店铺 ShopID ;
@0027: 启动当铺 ;
@0028: 对敌下毒 Boolean WordID ;ApplyToAll Poison 巫抗随机判断
似乎蛊术没有对应的蛊物副作用?毒脚本重入
@0029: 对我下毒 Boolean WordID ;ApplyToAll Poison 毒抗随机判断.
此处我方毒抗相当于敌方巫抗.那敌方毒抗捏?……毒脚本重入
@002a: 敌方毒愈 Boolean WordID ;ApplyToAll Poison
@002b: 我方毒愈 Boolean WordID ;ApplyToAll Poison
@002c: 我方弱毒治愈 Boolean Int16 ;ApplyToAll PoisonLevel
@002d: 设置我方状态 ConditionID Int16; Condition Rounds
傀儡状态特殊设置——检测死未。不良状态若尚未终结就不设置;良好状态则设置到当前与欲设者之长者。
@002e: 设置敌方状态 ConditionID Int16 ScriptID ;Condition Rounds FailureScript
貌似只有不良状态;有巫抗随机判定。
@002f: 我方消除状态 ConditionID
@0030: 属性百分比增长 AttributeID Int16 Int16;Attribute PercentageChange Character
若参三指定,则为队中该人。存储在额外位置。
@0031: 本队员改变形象 BattleSpriteID
仅改变参数,重绘由例行函数执行。
0032: 战时/平时分派 ScriptID ScriptID ; LOST SCRIPT!!!
调用时为战时执行前者,平时执行后者。
@0033: 灵壶收妖 ScriptID ;FailureScript
@0034: 灵壶炼丹 ScriptID ;InsufficientEnergyScript
清空……经验值?……写错地方了吧?
@0035: 震动屏幕 Int16 Int16 ;Time Grade?
前者震荡次数(奇数时震屏,许多函数都会调用,所以具体代表时间不明),后者为震荡行数。
@0036: 设置动画 MovieID
@0037: 播放动画帧 Int16 Int16 Int16 ;StartFrame StopFrame(0=play all) Speed
@0038: 土遁 ScriptID ;FailureScript
离开迷宫脚本是重入的;失败的话则直接把下一个执行的脚本设为失败脚本。凡失败/不足脚本均如此。
@0039: 吸收HP Int16 ;Amount 可敌对我亦可我对敌。敌无HP上限。
@003a: 非BOSS战逃跑 ScriptID ;FailureScript
@003b: 中间显示 Int16 ; 字体颜色
@003c: 上部显示 FaceID Int16 Int16 ; 人物 字体颜色 IsPlayingMovie 若无人物,字靠左;有的话往右挪。若3=ffff(动画),先备份屏幕。
@003d: 下部显示 FaceID Int16 Int16 ; 人物 字体颜色 IsPlayingMovie 同上
@003e: 框架显示 Int16 ; 字体颜色
@003f: 乘物低速驶到 Int16 Int16 Int16 ; XYH;调用方式同10,11;随驾驶者移动视角;检测事件触发;不到目的地本脚本不停止执行。
@0040: 设置对象触发方式 ObjectID TriggerMethodID ;Object TriggerMethod 参见脚本16
@0041: 术法无效 ; 仙术前序脚本失败,不再执行下去
@0042: 我方使用法术 WordID Int16 Int16 ;仙术 基本伤害 敌人序号(若为0或>5则为隐含,若<0则任选)
@0043: 背景音乐 MusicID Int16 ; 后者不明
@0044: 乘物中速行至 Int16 Int16 Int16 ; 参见3f。
@0045: 设置战斗音乐 Int16 ;Music
@0046: 设置队员块位置 Int16 Int16 Int16 ; XBlock YBlock HalfBlock 设置了一大堆相关数据结构……
@0047: 播放音效 Int16
0048: 音效相关... ; LOST SCRIPT!!!问题是没弄明白干吗……
@0049: 设置对象状态 ObjectID Int16 ; 2=hero cannot walk over 参见16
@004a: 设置战场环境 PictureID ;BattleField
@004b: 我方逃跑后等待重现 Int16 ; 默认……10毫秒
@004c: 本对象追向主角 Int16 Int16 Int16 ;警戒范围默认8 追及速度默认4 Boolean
不进入警戒范围时,敌进行与我坐标不同的方向的随机运动。复杂,未看完
@004d: 等待击键
@004e: 调入最后存档
@004f: 全屏泛红 Int16 ; 若<=0全屏像素&=0xf|=0x10即泛红;若>0当前半球色彩全部覆盖为x--x+24色彩。
@0050: 淡出 Boolean; 快速
@0051: 淡入 Boolean; 快速
@0052: 本对象匿迹 Int16 ;VanishTime
@0053: 下次切换调色板变成日间
@0054: 下次切换调色板变成夜间
@0055: 习得仙术 WordID CharacterID ;0则当前队员 不作显示
@0056: 丧失仙术 WordID CharacterID ;0则当前队员
@0057: 多倍MP设为基本伤害 WordID Int16 ; 仙术 倍数 0则为8
@0058: 物品不够则跳转 WordID Int16 ScriptID ;Item Quantity 0则1 Script
@0059: 转到场景 SceneID
凡是这类复杂指令——可能触发大量脚本重入者,都是设置好下次循环再调入的标志。根据敌人追逐回合,游戏主循环大概是10hz。
@005a: 本队员血减半 ; 仅用于无影毒
@005b: 该敌人受限血减半 UInt16 ; 减血上限
@005c: 我方隐形 Int16 ;Rounds 至少一回合
@005d: 若该队员未中此毒则跳转 WordID ScriptID
@005e: 若该敌人未中此毒则跳转 WordID ScriptID
@005f: 我方阵亡
@0060: 敌方阵亡
@0061: 若该队员未中毒则跳转 ScriptID
@0062: 敌人停止追逐 Int16 ;Time
@0063: 敌人追逐加速 Int16 ;Time
@0064: 若该敌HP低于该比例则跳转 Int16 ScriptID ; Percent至少是1% Script
@0065: 设置队员形象 TeamMemberID SpriteID Boolean ;TeamMember Sprite Immediate 若不在战斗中,判断这个参数以决定是否立刻设置。
@0066: 投掷武器 WordID Int16 ;模拟法术 BaseDamage 武*int(rnd(4))+基本伤害存入arg2,然后执行模拟法术。
@0067: 敌方使用法术 WordID Int16 ; 法 施术频率 敌只有一个法术位,每次该脚本改变之。频率同,默认100%。
ffff为啥都不干,0为普攻。
@0068: 目标若为我方则跳转 ScriptID
@0069: 敌人逃跑 Boolean ;ApplyToAll 好像是100%成功?未确证
@006a: 偷窃 Int16 ; 失败概率 若是钱(0),每次只能偷到当前值/(2+rnd(1));物品则只能偷到一个。
@006b: 吹开敌人 Int16 ;Amount
@006c: 对象一步走到 ObjectID Int16 Int16 ; Object XOffset YOffset, 使用NPC走动函数
@006d: 设置场景脚本 SceneID ScriptID ScriptID ;SceneID EnterScript LeaveScript
@006e: 主角一步走到 Int16 Int16 Int16 ;XOffset YOffset 图层?
@006f: 与指定对象同步指定状态 ObjectID StatusID; 同步状态;两扇门之间。
@0070: 主角走到 Int16 Int16 Int16 ;XBlock YBlock HalfBlock 速度2
其后因不小心删掉了原文件,所以对实现的评点丢掉了。
@0071: 画面晃动 Int16 Int16 ; 晃动层次 ?(***) 推后执行;未详查
0072: 更换对象形象 ObjectID Int16 Boolean;(0则当前) mgo号 是否重建mgo映像 LOST SCRIPT!!!
@0073: 泛金消散 Int16 Int16 ; 每次消散耗时 消散次数
@0074: 我方受伤则跳转 ScriptID
@0075: 组队 CharacterID CharacterID CharacterID
@0076: 显示图片 PictureID Int16 ;Picture 等待时间
@0077: 停止音乐 Boolean ; fade?(求测***)
@0078: 战后返回地图
@0079: 若队中有主角则跳转 WordID ScriptID ;TeamMemberRoleID Script
@007a: 主角稍快走到 Int16 Int16 Int16 ;X Y Half 速度4
@007b: 主角迅速走到 Int16 Int16 Int16 ;X Y Half 速度8
@007c: 本对象互斥走到 Int16 Int16 Int16 ; XBlock YBlock HalfBlock, no edge check 速度4
@007d: 对象移动到 ObjectID Int16 Int16 ; Object XOffset YOffset
@007e: 设置对象所在层 ObjectID Int16 ; Object Layer
@007f: 移动视线 Int16 Int16 Int16 ; X Y Times 若=ffff则XY为绝对块,>0则XY为相对像素,本身为循环次数。
@0080: 日夜切换 Boolean ;(false=低速, true=高速)
@0081: 若活动对象不在目视指定范围内则跳转 ObjectID Int16 ScriptID ; Object 工作距离.*32+10像素vs.dist(当前目视位置,对象位置) Script 要求对象状态在1以上。
@0082: 本对象跑到 Int16 Int16 Int16 ;XBlock YBlock HalfBlock
@0083: 若对象不在指定范围内则跳转 ObjectID Int16 ScriptID ;ObjectSprite MaxOffset FailureScript
@0084: 放置对象 ObjectID TriggerMethodID ScriptID ;Object TriggerMethod FailureScript若无则不进行障碍检测
@0085: 等待 Int16
@0086: 若装备着的该道具少于指定数量则跳转 WordID Int16 ScriptID ; InventoryItem 装备数 Script
@0087: 本对象原地漫步
@0088: 耗费钱数设为基本伤害 WordID ; 法术 默认用5000/2.5,不够用剩下的钱/2.5设
@0089: 结束战斗 BattleResultID;
@008a: 下一战自动战斗
@008b: 更换调色板 PaletteID ;
@008c: 向指定色彩淡入 Int16 Int16 Boolean ;颜色号.这之后的三个颜色将覆盖整个调色板. 每次淡入等待时间 是则反转淡入
淡入0x3F次。
@008d: 修行提升 Int16 ; 升级数据随机。
@008e: 还原屏幕 ; 可以清掉所有文字对话框等等
@008f: 金钱减半
@0090: 设置敌脚本 WordID ScriptID EnemyScriptID;EnemyName 脚本 脚本类型
@0091: 若调用之敌在队中不唯一则跳转 scriptID;
@0092: 觉醒 CharacterID ;其实就是一个施法动作。
@0093: 淡入淡出 Int16;速度;正数时淡入,负数时淡出
@0094: 若对象为指定状态则跳转 ObjectID StatusID ScriptID
@0095: 若在该场景则跳转 SceneID ScriptID
@0096: 决死行
@0097: 乘物高速行至 Int16 Int16 Int16 ;速度8
@0098: 跟随人等 SpriteID SpriteID
@0099: 改变场景对应地图 SceneID Int16;场景号 地图号 若场景号<0,即为当前场景。
@009a: 设置对象序列状态 ObjectID ObjectID StatusID ;ObjFirst ObjLast ActivationState
@009b: 淡入到当前图景 Int16 PictureID Int16 ; unknown ffff则生成 unknown...
@009c: 若敌方分身失败则跳转 Int16 ScriptID; 分身数量0=1 失败脚本 HP+参1等分(HP>1方可),只有只剩下该敌人自己时方可分身
009d: 若敌方复活失败则跳转 Int16 ScriptID ; 0则全部复活,否则1个 不许超过Team中规定的个数。LOST SCRIPT!!!
@009e: 若敌方召唤失败则跳转 WordID Int16 ScriptID;EnemyType<=0召唤同类 Number至少召唤一个 不许超过Team中规定的个数。
@009f: 敌方变身 WordID
@00a0: 退出游戏
@00a1: 更新我方位置及步伐 ; 主要用在程序行走方面,以免后来者找不着北……
@00a2: 以下N句随机跳转 ScriptID Int16;
@00a3: 播放CD音轨 CDID Int16 Boolean;音轨号 等价RIX/MIDI号 未知
@00a4: 卷动图片 PictureID SpriteID Int16 ;Picture <=0不调入 Speed
@00a5: 淡入图片 PictureID SpriteID Int16 ;
@00a6: 输出显示缓冲

[ 本帖最后由 palxex 于 2006-8-23 12:24 编辑 ]

快速回复

登录名:
密码: 马上注册! 如果您还不是游戏网会员请点击马上注册,如果您是......
心情:
:revertSmile50: :revertSmile51: :revertSmile52: :revertSmile53: :revertSmile55: :revertSmile56: :revertSmile57: :revertSmile58: :revertSmile60: :revertSmile61: :revertSmile63: :revertSmile65: :revertSmile66: :revertSmile67: :revertSmile70:
内容:
验证码: 看不清?点击图片换图(游客回复需通过认证才能显示,想立即看到回复,请注册登录)
[完成后可按 Ctrl+Enter 回复]推荐朋友,获得无限社区积分!
  • 游戏网声明:
  • 本社区(http://bbs.youxi.com)所载所有内容皆为网友上传。 游戏网只为网友提供空间和平台,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请于该信息发布之日起30日内进行。
  • 文明回贴是一种美德,尊重他人等于尊重自己!