首先熟记以下命令: @-------------------------------------------------------脚本命令------------------------------------------------------------- @脚本中可使用的资源: @1.配角资源,40个(1-40). @2.变量,240个(0-239). @3.全局事件标志,2400个(1-2400). @4.场景事件,255个(1-255). @配角资源是NPC和场景对象共用的,操作号是1到40,使用STARTCHAPTER语句载入脚本时会初始化.一般情况下NPC角色和场景对象用法是一样的. @变量分为两部分,脚标从0到199是全局变量,只在新开始游戏时初始化一次;脚标从200到239是局部变量,每次使用STARTCHAPTER语句载入脚本时会初始化. @全局事件标志,序号从1到2400,只在新开始游戏时初始化一次. @场景事件,分为NPC事件.地图事件和其他事件.NPC事件由1到40,与其资源操作号对应;地图事件由41到255,即地图编辑器中设置的事件为1,在场景中的事件为1+40=41;其他事件可用1到255. '@'为注释符号,同一行@后面的代码无效 @=========媒体播放========= MUSIC n timers ---- 播放号码为n(n=1--11)的系统内置音乐(为0时停止播放),持续次数为timers(为0时循环播放) MOVIE type team x y ctl ---- 播放动画,type和team为参数,(x,y)动画的相对屏幕左上角坐标的偏移,ctl为0时只播放动画,ctl为1时按键动画结束,ctl为2时背景不变,ctl为3时按键动画结束及背景不变(其中TYPE:1表示过场动画,2表示魔法效果.TEAM就是他们所在类型的序号,大家可以打开特效编辑器查看) @=========游戏场景========= LOADMAP m n x y ---- 载入号码n,类型m的地图,初始地图位置(x,y),(x.y)为地图编辑器中pos后的坐标 SETSCENENAME "..." ---- 设置场景名称,五个汉字以内(也用来显示存档名称,但是最好与地图编辑器中名字设置相一致,因为存档名字有时显示这个,有时显示那个,不确定的.当然一副地图多用就算了.) SHOWSCENENAME ---- 显示场景名称 SCREENS x y ---- 屏幕左上角定位到地图的(x,y)处 SHOWSCREEN ---- 刷新屏幕(因为战斗失败或删除NPC后不能正常显示屏幕,所以一般战斗失败或删除NPC后加上此命令) @=========游戏角色========= CREATEACTOR actor x y ---- 创建主角号码actor,相对屏幕位置为(x,y)注:X=4,Y=5是一个通用坐标,即任何一个地图使用该坐标创建主角时都会在屏幕的正中间 SETCONTROLID actor ---- 设置角色号actor为当前控制(默认的被控制角色——游戏的主人翁的id=1),也就是设置人物领队 DELETEACTOR actor ---- 主角角色离队,从角色队列中删除指定主角号码actor的角色(人物属性保存) CREATENPC id npc x y ---- 创建配角号码为npc,在地图位置(x,y)处,id为操作号 DELETENPC id ---- 删除操作号为id的配角 DELALLNPC ---- 删除当前场景所有NPC和场景对象(每载入一个地图时应加上它) NPCSTEP id faceto step ---- id角色(0为主角),faceto面向(分割图片的行数,从0开始,默认为0-3分别代表上右下左),step 脚步(一行中分割图片的号数,从0开始,可以在角色编辑器中查看,默认为0-2分别代表迈左脚,立正,迈右脚;立正最好在中间,因为播放顺序是来回的),此命令也包括场景对象 MOVE id x y ---- 将操作号为id的NPC角色移动到(x,y)处——主角不可以移动 NPCMOVEMOD id mode ---- 配角的运动模式,id为操作号,mode为0时原地不动,为1时随机运动,为4激活状态——只换图片,不改变位置(适合动态的物品对象),为2或3好象原地踏步走 FACETOFACE n m ---- 角色n与角色m面相对,0为主角 CREATEBOX id boxindex x y ---- 创建一个场景对象,场景对象图片号码为boxindex,位置为(x,y),id为操作号 BOXOPEN id ---- 显示场景对象第二张图片(几乎没用,我在NPCSTEP中设置的) DELETEBOX id ---- 删除操作号为id的场景对象 @=========脚本调用========= STARTCHAPTER m n ---- 载入号为n,类型为m的脚本,当前脚本结束 CALLBACK ---- 退出脚本(一段命令完时应加上它) CALLCHAPTER m n ---- 调用号为n,类型为m的脚本,当前脚本执行位置被保存,所有资源不初始化;当被调用脚本CALLBACK时,返回调用位置继续执行(注意:调用前后资源都不进行初始化,被调用脚本也会影响调用后的资源状况) RETURN ---- 返回到调用位置的下一句(和CALLBACK的区别除了返回区别外,还有一个重要的是本语句会恢复原脚本的事件跳转表等脚本信息) @=========跳转指令========= GOTO label ---- 跳转到脚本地址标号为label处运行 IF n label ---- 如果事件标志为1,跳转到脚本地址标号为label处运行 GUTEVENT n label ---- 当角色触发到场景事件n时,跳转到label下执行 IFCMP n m label ---- 脚标号为n变量与数m相等就跳转到脚本地址标号为label处运行,不等就继续向下 DISCMP n m lowaddr higaddr ---- 脚标号为n变量与数m,小于数m跳到lowaddr执行脚本,大于数m跳到higaddr执行脚本,等于不跳转 @=========引擎功能调用========= GAMEOVER ---- 游戏结束(返回主界面) SETMONEY money ---- 设置现钱数目为money GAINMONEY money ---- 得到数目为money的钱 USEMONEY money ---- 用去(丢失)数目为money的钱 BUY "t001 t002 ... tsum" ---- 买东西,t为物品类型(在道具编辑器中的类型号,1--14),sum为ID号(必须为三位),每种以空格分开,在""中(最多20种) SALE ---- 卖物品 INITFIGHT f0 f1 f2 f3 f4 f5 f6 f7 scrb scrl scrr---- 初始化随即战斗参数并开启随机战斗,f0-f7为可能出现的敌人的种类(0为没有),scrb为大战斗背景,scrl为左下角图,scrr为右上角图;逃跑可能成功 FIGHTENABLE ---- 开启随机战斗 FIGHTDISENABLE ---- 关闭随机战斗 ENTERFIGHT roundmax f0 f1 f2 scrb scrl scrr evtrnd0 evtrnd1 evtrnd2 evt0 evt1 evt2 lossto winto ---- 进入战斗,roundmax为限定最多回合数(0为无限),f0-f2为敌人(0为没有),evtrnd0-evtrnd2为战斗触发事件回合,evt0-evt2为相应的事件号(用GUTEVENT命令触发),lossto为战斗失败时跳转到的地址标号,winto为战斗胜利时跳转到的地址标号,到达roundmax后不跳转,scrb为大战斗背景,scrl为左下角图,scrr为右上角图;逃跑不能成功 LEARNMAGIC actor type index ---- 号码actor的主角学会法术类型为type,序号为index的法术 DELETEGOODS type index erradr ---- 删除物品链中的物品(type,index),如果物品链中无此物品即跳到erradr处执行 ACTORLAYERUP id level ---- 角色id升到第level级,如果现级别大于或等于level则不升级 DISABLESAVE ---- 禁止存档功能 ENABLESAVE ---- 允许存档功能 GAMESAVE ---- 调用存档功能(这个命令最好不用,因为读档时不会执行GAMESAVE下面的命令,所以会造成错误,尤其是在CALLCHAPTER下时读取就当机了.非要用时就在GAMESAVE下写CALLBACK吧---因为我们都会手动存档,所以这个命令就不要了吧) SETEVENTTIMER event timer ---- 定时触发事件event,定时时间为timer*0.5秒,可惜的是不能同时调用(但我有一个方法,把触发次数放在变量中,用变量触发,Clear?) ENABLESHOWPOS ---- 打开显示主角在当前地图的坐标功能 DISABLESHOWPOS ---- 取消显示主角在当前地图的坐标功能 SETARMSTOSS flag ---- 设置武器是否能投掷(flag为0不能投掷,为1能投掷) SETFIGHTMISS flag ---- 设置战斗中是否有Miss(flag为0没有Miss,为1有Miss) @=========物品操作========= GAINGOODS type index ---- 获得物品,类型为type,号码为index USEGOODS type index erradr ---- 使用物品链中的一个物品(type,index),如果物品链中无此物品即跳到erradr处执行 USEGOODSNUM type index num erradr ---- 使用物品链中的num个物品(type,index),如果物品链中无此物品或该物品个数小于num,即跳到erradr处执行且物品链中物品不变 @=========事件和变量操作========= SETEVENT n ---- 将事件n标志设置为1 CLREVENT n ---- 将事件n标志设置为0 SET n m ---- 脚标号为n的变量内容为m ADD n m ---- 脚标号为n的变量与数m相加,结果存到脚标号为n的变量中 SUB n m ---- 脚标号为n的变量减去数m,结果存到脚标号为n的变量中 SETTO n1 n2 ---- 将变量n1的值赋给变量n2 @=========选择菜单========= CHOICE "..." "..." adress ---- 两项选择框,选择第一个不跳转,选择第二个脚本跳转到地址adress处(""中的字符数为9个汉字或19个ASCII字符) MENU choice "......" ---- 多项选择菜单,"......"为菜单项字符,项与项间以空格分开(如"离开 继续前进 瞬移"),项数不限;选择结果存放在脚标号为choice的变量中,0为跳出没选择,其他值为选中项序号 @=========角色属性检测和修改========= ATTRIBTEST actor type attrval lowaddr higaddr ---- 检测号码actor的主角的type(0-级别,1-攻击力,2-防御力,3-身法,4-生命,5-真气当前值,6-当前经验值,7-灵力,8-幸运,9-攻击的异常回合数,10-对特殊状态的免疫,11-普通攻击可能产生异常状态,12-合体法术,13-每回合变化生命,14-每回合变化真气,15-头戴,16-身穿,17-肩披,18-护腕,19-手持,20-脚蹬,21-佩戴1,22-佩戴2,23-生命上限,24-真气上限)属性,属性值小于attrval跳到lowaddr执行脚本,属性值大于attrval跳到higaddr执行脚本,等于不跳转. ATTRIBSET actor type attrval ---- 设置号码actor的主角的type(0-级别,1-攻击力,2-防御力,3-身法,4-生命,5-真气当前值,6-当前经验值,7-灵力,8-幸运,9-攻击的异常回合数,10-对特殊状态的免疫,11-普通攻击可能产生异常状态,12-合体法术,13-每回合变化生命,14-每回合变化真气,15-生命上限,16-真气上限)属性,属性值等于attrval. ATTRIBADD actor type attrval ---- 号码actor的主角的type(0-级别,1-攻击力,2-防御力,3-身法,4-生命,5-真气当前值,6-当前经验值,7-灵力,8-幸运,9-攻击的异常回合数,10-生命上限,11-真气上限)属性值加上attrval. RESUMEACTORHP id rade ---- 恢复角色id生命rade%(一般用于剧情战斗失败,而游戏继续) TESTMONEY money lessadr ---- 检测玩家金钱,如果金钱少于money,即跳到lessadr处执行(使用前别忘了检测) TESTGOODSNUM type index num adrequ adrmore ---- 检测物品链中的物品(type,index)的个数,如果物品链中无此物品或该物品个数小于num,即不跳转;如果个数等于num,跳到adrequ处执行;如果个数大于num,跳到adrmore处执行. @=========显示信息========= SHOWGUT toppic botpic "......" ---- 显示字幕,toppic和botpic为字幕"......"的上下加修饰的图片号 MESSAGE "..." ---- 用消息框显示"..."中信息(每行最多显示8个汉字,最多可显示5行),等待按键才返回 TIMEMSG time "......" ---- 用消息框显示"......"中信息(每行最多显示8个汉字,最多可显示5行),延时time*10毫秒,如果time为0则要按键才显示结束. SAY pos "......" ---- 将"......"中的内容打印到屏幕上,pos为说话的头像图号(第一幅),0为没有贴图 @=========杂类指令========= RANDRADE rade trueadr ---- 产生1000份之rade的随机机率,如果命中,即跳到trueadr处执行,没有命中不跳转 @-------------------------------------------------------脚本命令结束------------------------------------------------------ 二.特定资源说明 RPG制作工具的帮助文件没有说明这些东西,我就自己摸索,发现了一些,另一些有人知道的话请告诉我啊,谢谢. 1.过场动画序号: 240:攻 241:防 242:速 243:毒 244:乱 245:封 246:眠 247:游戏开发组的商标(片头动画) 248:游戏的名称动画 249:游戏战斗失败后的过场动画 250--255:主菜单显示动画(用于选择),250为开始游戏动画(必须有),251为载入游戏动画(必须有),252以后就自己定拉. 2.杂类图片: (1)头像类 1,1--1,X:主角图象,每个8幅(24*8,28*1):静(显示用),喜,怒,笑,哀,惊,小-存档用,静--战斗用;每幅宽度最好24,高度最好28. 注:怎样调用中间的一些图片目前还不清楚,所以一定要调用的话就把这些制成另一个图片ID来用(切记不要与主角的头像图片ID重复了). (2)界面显示(默认图片大小:宽*个数,高*个数) 2,1:战斗左下脚界面显示,4幅(40*2,32*2),分别是选中攻击,魔法,其他,合击. 2,2:战斗时底下的属性框(75,27). 2,3:攻击对象头上箭头图象(两幅,有无表示闪烁状态)(16*2,11*1). 2,4:选择人物箭头(4幅,前两幅是该命令自己人中的某人;后两幅是施法给自己人中的某人.都为闪烁状态)(8*4,5*1). 2,5:0到10的数字图片(80,7). 2,6:+号(7,7)不用我说. 2,7:-号(7,3)不用我说. 2,8:消息框左右两面的装饰图片(16,24). 2,9:升级图象(128,96). 2,10:练成(魔法)(114,65). 2,11:状态(120,72). 2,12:状态显示,5幅(8*5,8*1),分别是属性上升,下降,不免疫,免疫(指毒乱封眠),回合(指攻防速). 2,13:死后图象(120,22). 2,14:游戏主菜单显示图片(静态,与主菜单显示动画同时显示,当动画大小大于图片大小时覆盖图片,只显示动画)(159,96). 2,15:存档图象(159,96). 2,16:取档图象(159,96). 2,17:坐标显示框(40,16). 2,18:MISS图片(36,10). (3)战斗主角 3,1--3,X:主角战斗图片(16*4,16*3)(静,静,跳,挥,砍,施法1,施法2,放法,防,挨打,累,死) (4)剧情显示:在SHOWGUT命令中调用的图片号,自己定. 3.脚本: 0 1--0 4:对应上边主菜单显示动画(0 1对应252,0 2对应253...)的脚本. 0 5:读取进度时调用的脚本 0 6:热键(shift+下:查找键) 0 7:热键(shift+右:添加键) 0 8:热键(shift+上:修改键) 0 9:热键(shift+左:删除键) 1 1:游戏开始载入脚本 255 X(X=1,2...):使用ID=X剧情类道具时触发的脚本 注意:热键脚本结束时应用"RETURN"命令!主菜单脚本和游戏开始载入脚本结束时应用"RETURN"命令!其它的看情况(使用STARTCHAPTER命令用CALLBACK结束;使用CALLCHAPTER命令用RETURN结束,如果使用CALLCHAPTER而用CALLBACK返回则回导致脚本信息丢失).