Lua开发者运行: 4057天

游戏任务策划案以及Lua实现

作者:LuaStudio 发布于:2015-12-28 9:32 Monday 分类:心得体会

一 任务简要说明:
老道炼药,需要一个天使之心,在天使加百列身上有半颗,在路西法身上有半颗。老道交给你一个玉符,告诉你在法坛上使用可以帮你打开通往两处的通道。并告诉你两处的坐标A、B。(不在法坛上使用玉符无效)
A坐标通往加百列,B通道通往路西法。
你站在法坛上,使用玉符进入光明前殿(或者黑暗大殿,进入先后次序不论)。
进入光明前殿遇到加百列,加百列异常高傲,称你为异教徒,你回敬他是长着鸡翅膀的不男不女的鸟人,对骂之后开始战斗。
加百列战斗策略:自身20%的几率使用光明护盾,持续5秒,每次光明护盾消失后都有20%的几率再次使用。
当自身血量低于最大血量有10%的几率使用治愈术。
当自身血量低于最大血量10%有10%的几率使用复活术,血量回满,复活术最多可使用三次。
当自身血量低于最大血量1%,且三次复活术不满则100%使用复活术。
当对方血量是当前自身血量的2倍,有10%的几率使用大预言术,大预言术50%几率为时间凝固,对方不可操作,时间5秒,50%的几率为时间逆流,对方所有属性减半,时间5秒
加百列死亡后100%获得半颗光明天使之心,获得天使之心后,你自动返回法坛前,法坛前坐标为C。
进入黑暗神殿,路西法只说了声战斗吧,即开始战斗。
路西法战斗策略:当自身血量分别为最大血量的90%,70%, 50%, 30%, 10%时开始召唤生物,第一批为三个石像鬼,第二批为三个黑暗巫师,第三批为四个大恶魔,第四批为四个骨龙,第五批为五个深渊魔王。
当每死一只召唤生物,有10%的几率分别使用虚弱,中毒,恐惧,失明,四个魔法中的一个。
若召唤生物没有全部死亡,而路西法血量少于5%的时候处于无敌状态,物理和魔法攻击免疫。
杀死路西法100%获得半颗黑暗天使之心,获得后自动返回法坛前台。
你将两个半颗天使之心带到老道处,老道要你用狗血去融合了这两个半颗天使之心,使之变成一颗完整的天使之心。
你去找了半盆黑狗血,将两颗天使之心扔进去,一道光闪过,盆里出现课天使之心,你拿完整的天使之心又去交给老道,老道很满意,给了你一枚人参果,你临走好奇问老道要天使之心炼什么药,老道告诉你,没啥用,就是看鸟人脸上道貌岸然,一肚子男盗女娼的样子不爽,正好最近有点闲,拿天使之心不过是想炼一份给自己养的牛除牛虱的药而已。你不仅为老道的恶搞而汗颜。
特别说明:
1、该任务中任何死亡都做正常死亡处理,死亡后需要重新从法坛进入目的地
2、当每拿到半颗天使之心,则该地图不可再次进入,输入坐标无效
3、当两个半颗天使之心都已获得,则玉符自动消失
4、两个场景地图不保存信息,即玩家在两个场景地图中的任一个下线后,再次上线则回到法坛前
5、该任务不可重复,每个用户只能完成一次
6、该任务接受后需要在任务日志中记录,用户可以随时查询,任务完成后清除任务日志
7、用户获得的奖励需要做log,方便查询
要求:
1、写出任务基本流程,并附流程图
2、按照任务编写一份伪脚本
其他说明:
1、所有所需的关键词、变量、以及函数由答题者自行定义,并对所定义的词、变量、函数等作出解释说明
2、编写格式可以按自己的方式编写,但需作出必要的说明
3、在战斗脚本部分编写,可任一选择一个战斗进行编写,也可以全部编写

“老道炼药”任务策划案(初稿)
 任务基本流程
领取任务:1.玩家去道观(21104)找老道对话,获得玉符,任务开始。
做任务:  2.玩家去道观所在的法坛。
          3.玩家在法坛使用玉符,打开通道,输入A坐标,来到光明大殿杀死加百列,获得半颗天使之心。
          4.玩家在法坛使用玉符,打开通道,输入B坐标,来到黑暗大殿杀死路西法,获得半颗天使之心。
          5.玩家带着2个半颗天使之心找老道对话。
          6.玩家奉命炼制天使之心,去找材料黑狗血。
还任务:  7.玩家带着天使之心找老道对话,获得人参果,任务完成。

任务流程图:

 加百列战斗脚本流程图

AI决策流程图:

 脚本相关
1.函数定义:
GetMissionFlag (PlayerIDMissionID)      ---读取玩家某任务的任务完成标识
GetMissionSpace ( )                   ---读取玩家当前已接任务总数,
---未达上限返回TURE,否则返回FALSE
GetMissionName (MissionFlag)           ---读取指定任务的任务变量名
GetMissionValue(MissionFlag)           ---读取指定任务的任务变量名对应的变量值
TestMissionFlag (Flag)                 ---检测玩家任务完成标识表的状态,有变化则返回---对应任务的任务编号,否则返回FALSE
GetMissionText (MissionIDMissionFlag) ---根据任务编号和任务完成标识读取任务日志说明
GetPlayerLevel (PlayerID)             ---读取玩家当前等级
GetPlayerName (PlayerID)             ---读取玩家游戏ID的呢称
GetItem (ItemID)                     ---玩家获得指定物品
LoseItem (ItemID)                   ---玩家失去指定物品
GetMissionGain (MissionID)           ---玩家获得某任务的任务奖励
LookforItem (ItemIDItemNumber)   ---追踪玩家身上携带的某物品,返回TUREFALSE
PlayAnim (NPC/PlayerAnimID)       ---播放指定的精灵动画
NPCtalk ( )                           ---显示NPC当前对白
Playertalk ( )                          ---显示玩家当前对白
ERROR( )                           ---提示错误的输入信息
GetPlayerHP (PlayerID)                 ---读取玩家当前HP
GetNPCHP (NPCID)                   ---读取NPC当前HP
GetPlayerDroidX ( )                   ---读取玩家当前X坐标
GetPlayerDroidY ( )                   ---读取玩家当前Y坐标
GetPlayerDroidDir ( )                  ---读取玩家当前面向
GetPlayerToNPCDist ( )                ---读取玩家距NPC的当前距离
GetNPCDroidX ( )                    ---读取NPC当前X坐标
GetNPCDroidY ( )                    ---读取NPC当前Y坐标
GetNPCDroidDir ( )                   ---读取NPC当前面向
MoveNPCDroid(Dir Dist,Speed)   ---根据给定的面向,距离和速度移动NPC
GetStateTime (FreqtTime)             ---计时器根据计数循环返回FALSE1
UseSkill (SkillID)                     ---使用指定的技能  
OverSkill (SkillID)                   ---取消指定的技能
ViewPepoleInRegional (radius)          ---查看区域radius内目标,返回TURE或者FALSE
GetSystemTime ( )                   ---读取当前系统时间,单位秒
GetRanInRange (MinMax )          ---获得[Min+1Max-Min+1]范围内的任意整数值