完美情人辅助击杀怪物数量拍摄脚本怎么写写?

只需一步,快速开始
查看: 6892|回复: 6
请教只打精英的设置,我按站内帖子设置,还是会打全部小怪
主题帖子积分
注册会员, 积分 91, 距离下一级还需 109 积分
注册会员, 积分 91, 距离下一级还需 109 积分
累计在线530分钟
QQ图片07.png (62.49 KB, 下载次数: 6)
22:29 上传
设置如上图,角色用旋风蛮子,每一个小怪都杀,这是为什么,请教哪里设置不对,我想只杀精英
主题帖子积分
传奇会员, 积分 2395, 距离下一级还需 605 积分
传奇会员, 积分 2395, 距离下一级还需 605 积分
累计在线22460分钟
本帖最后由 mmrozen 于
00:25 编辑
在生命低于%时总是击杀精英怪那里,设置成100%。触发成堆怪物的战斗范围那里设置成0。成堆怪物之间的距离那里设置成0。
主题帖子积分
注册会员, 积分 91, 距离下一级还需 109 积分
注册会员, 积分 91, 距离下一级还需 109 积分
累计在线530分钟
在生命低于%时总是击杀精英怪那里,设置成100%。触发成堆怪物的战斗范围那里设置成0。成堆怪物之间的距离那 ...
多谢指点!!!!!
主题帖子积分
注册会员, 积分 122, 距离下一级还需 78 积分
注册会员, 积分 122, 距离下一级还需 78 积分
累计在线1160分钟
在生命低于%时总是击杀精英怪那里,设置成100%。触发成堆怪物的战斗范围那里设置成0。成堆怪物之间的距离那 ...
捂脸套 加寅剑,没法用穿怪鞋,怎么能设置只打精英,并且被小怪围住的时候攻击小怪呢?
主题帖子积分
传奇会员, 积分 2395, 距离下一级还需 605 积分
传奇会员, 积分 2395, 距离下一级还需 605 积分
累计在线22460分钟
捂脸套 加寅剑,没法用穿怪鞋,怎么能设置只打精英,并且被小怪围住的时候攻击小怪呢?
只打精英就按照LZ的图和我说的设置就成。被围打小怪需要策略支持...
主题帖子积分
注册会员, 积分 122, 距离下一级还需 78 积分
注册会员, 积分 122, 距离下一级还需 78 积分
累计在线1160分钟
只打精英就按照LZ的图和我说的设置就成。被围打小怪需要策略支持...
只打精英没问题,但是策略方面我找了很多,没找到类似帖子,请问策略怎么设置,能告诉一下么
主题帖子积分
传奇会员, 积分 2395, 距离下一级还需 605 积分
传奇会员, 积分 2395, 距离下一级还需 605 积分
累计在线22460分钟
只打精英没问题,但是策略方面我找了很多,没找到类似帖子,请问策略怎么设置,能告诉一下么
捂脸套貌似没有人改过相关的策略...
我建议还是弄一个小鸡巫医。只要装备齐了,没远古都应该能速刷T8...
Powered by查看: 3928|回复: 0
传奇各种变量的说明-一目了然超级强大
脚本名词,变量解释,很全很好
#IF& && && && && && && && && && &;如果
#SAY& && && && && && && && && && &;输出字符串
#ACT& && && && && && && && && && &;执行命令
break& && && && && && && && && && &;结束命令
close& && && && && && && && && && &;结束对话
------条件命令-----
CHECKITEM 物品名 数量& && && && && && &;检测当前人物所带物品及数量
CHECKGOLD 数量& && && && && && && && &;检测当前人物所带金币数量
CHECKLEVELEX (>,<,=) 等级数& && && && &&&;检测当前人物等级
CHECKCREDITPOINT (>,<,=) 声望数& && && && &;检测当前人物声望
CHECKJOB (Warrior,Wizard,Taoist)& && && && &;检测当前人物所属职业
CHECKHUM 地图名 数量& && && && && && &&&;检测指定地图的玩家数量
CHECKITEMW 物品名 数量& && && && && && &;检测当前人物是否佩带指定物品
CHECKDURAEVA 物品名 数值& && && && && & ;检测当前人物所带矿物等物品的品质
CHECKBAGGAGE& && && && && && && && &;检测当前人物的背包是否已满
ONLINELONGMIN (>,<,=) 时长& && && && && & ;检测当前人物在线时长
CHECKCASTLEDOOR (损坏,开启,关闭)& && && && &;检测沙城城门状态
CASTLEWARAY (>,<,=) 天数& && && && && & ;检测上次攻城到现在的天数
CASTLECHANGEDAY (>,<,=) 天数& && && && &&&;检测沙巴克占领天数
CHECKOFGUILD 行会名称& && && && && && &;检测当前人物行会名称
CHECKNAMELIST 角色名列表.txt& && && && &&&;检测当前人物角色名是否在列表中
CHECKGUILDLIST 行会列表.txt& && && && &&&;检测当前人物行会是否在列表中
CHECKACCOUNTLIST 帐号列表.txt& && && && &&&;检测当前人物帐号是否在列表中
CHECKIPLIST IP列表.txt& && && && && && &;检测当前人物IP是否在列表中
CHECKACCOUNTIPLIST 帐号和IP列表.txt& && && & ;检测当前人物登录帐号与IP是否与列表中匹配
CHECKNAMEIPLIST 角色名和IP列表.txt& && && & ;检测当前人物角色名称与IP是否与列表中匹配
ISADMIN& && && && && && && && && & ;检测当前人物是否为管理员
HAVEGUILD& && && && && && && && &&&;检测当前人物是否加入行会
ISCASTLEGUILD& && && && && && && && &;检测当前人物是否为沙城成员
ISCASTLEMASTER& && && && && && && && &;检测当前人物是否为沙城老大
ISGUILDMASTER& && && && && && && && &;检测当前人物是否为行会老大
ISNEWHUMAN& && && && && && && && &&&;检测当前人物是否为新人
CHECKSLAVECOUNT (>,<,=) 数量& && && && &&&;检测当前人物所带宠物的数量
CHECKSLAVELEVEL (>,<,=) 等级数(7)& && && & ;检测当前人物所带宠物的等级
CHECKEXP (>,<,=) 经验值& && && && && && &;检测当前人物经验值
CHECKPOSELEVEL (>,<,=) 等级数& && && && &&&;检测当前人物对面人物的等级
CHECKPOSEGENDER 性别(男,女)& && && && &&&;检测当前人物对面人物的性别
CHECKMEMBERLEVEL 类型 (>,<,=) 等级数& && &&&;检测当前人物的会员等级
CHECKMEMBERTYPE (=,>,<) 类型数& && && && &;检测当前人物的会员类型
CHECKRENEWLEVEL (=,>,<) 转生次数& && && && &;检测当前人物的转生次数
CheckBagSize 数量& && && && && && && & ;检测当前人物背包空格数
CHECKDC (=,>,<) 攻击下限 (=,>,<) 攻击上限& && &;检测当前人物攻击力的上限及下限值
CHECKMC (=,>,<) 魔法下限 (=,>,<) 魔法上限& && &;检测当前人物魔法力的上限及下限值
CHECKSC (=,>,<) 道术下限 (=,>,<) 道术上限& && &;检测当前人物道术力的上限及下限值
CHECKHP (=,>,<) HP下限 (=,>,<) HP上限& && &&&;检测当前人物HP值的上限及下限值
CHECKMP (=,>,<) MP下限 (=,>,<) MP上限& && &&&;检测当前人物MP值的上限及下限值
CHECKUSEITEM 物品位置& && && && && && &;检测当前人物身上指定位置是否戴物品
CHECKITEMTYPE 物品位置 物品类型& && && && &;检测当前人物身上指定位置戴的物品是否为指定类型
CHECKGAMEPOINT 活力值& && && && && && &;检测当前人物活力值
ISLOCKPASSWORD& && && && && && && && &;检测当前人物的仓库是否解锁
PASSWORDERRORCOUNT (=,>,<) 次数& && && && &;检测当前人物输入仓库密码错误次数
CheckRangeMonCount 地图号 X Y 范围 (=,>,<) 数量&&;检测一个坐标范围内怪物数量
CheckMonMap 地图号 数量& && && && && && &;检测一个指定地图内的怪物数量
CHECKMON 数量& && && && && && && && &;检测当前人物所在地图内的怪物数量
CHECKSKILL 技能名称 (=,>,<) 修炼等级& && &&&;检测当前人物已学技能
------功能命令-----
MAP 地图名& && && && && && && && &&&;将当前人物移动到指定地图
MOVEMAP 地图名 X Y& && && && && && &&&;将当前人物移动到指定地图的指定坐标
TIMERECALL 时间值& && && && && && && & ;指定当前人物到达多少时间后被传回这里
BREAKTIMERECALL& && && && && && && & ;中断指定人物达多少时间后被传回这里
RECALLMOB 怪物名称 宝宝等级(最高为 7) 叛变时间(分钟) 是否自动变色(0、1)固定颜色(1-7);给予当前人物指定怪物为宝宝
setautogetexp 命令 时间 经验 是否安全区(0为任何地方) 地图号(任何地图请不用填);指定当前人物在线泡经验(直接得到经验)
GAMEGOLD (=,+,-) 数量& && && && && && &;调整当前人物的元宝数量
SETRANKLEVELNAME 封号& && && && && && &;调整当前人物的封号
ADDGUILDLIST 行会列表.txt& && && && && & ;将当前人物行会名加入列表
DELGUILDLIST 行会列表.txt& && && && && & ;将当前人物行会名从列表删除
ADLNAMELIST 角色名列表.txt& && && && && & ;将当前人物角色名加入列表
DELNAMELIST 角色名列表.txt& && && && && & ;将当前人物角色名从列表删除
CLEARNAMELIST 列表.txt& && && && && && &;清除列表内的所有信息
HAIRSTYLE 数值& && && && && && && && &;调整当前人物的发型
CHANGENAMECOLOR 数值& && && && && && &&&;调整当前人物的名字颜色
CHANGEJOB 职业名称(Warrior,Wizard,Taoist)& && &;调整当前人物的所属职业
CHANGEGENDER 数值& && && && && && && & ;调整当前人物的所属性别
ADDSKILL 技能名称 技能等级& && && && && & ;给予当前人物添加指定技能
DELSKILL 技能名称& && && && && && && & ;删除当前人物的指定技能
SKILLLEVEL 技能名称 (=,+,-) 技能等级& && &&&;调整当前人物的指定技能为指定等级
DELNOJOBSKILL& && && && && && && && &;删除当前人物非本职业的所有技能
CLEARSKILL& && && && && && && && &&&;删除当前人物的所有技能
GAMEPOINT (=,+,-) 数量& && && && && && &;调整当前人物的活力值
CREDITPOINT (=,+,-) 数量& && && && && & ;调整当前人物的声望点数
SETMEMBERLEVEL (=,+,-) 等级数& && && && &&&;调整当前人物的会员等级
SETMEMBERTYPE (=,+,-) 等级数& && && && &&&;调整当前人物的会员类型
CHANGELEVEL (=,+,-) 等级数& && && && && & ;调整当前人物的等级
CHANGEPKPOINT (=,+,-) 点数& && && && && & ;调整当前人物的PK点数
CHANGEEXP (=,+,-) 经验值& && && && && & ;调整当前人物的经验值
CHANGEMODE 模式类型(1管理模式、2无敌模式、3隐身模式) 开关(1为开,0为关) ;调整当前人物的游戏模式
CHANGEPERMISSION 权限等级& && && && && & ;调整当前人物的权限等级
KILLMONEXPRATE 倍率 有效时间& && && && &&&;调整当前人物的杀怪经验倍率
POWERRATE 倍率 有效时间& && && && && && &;调整当前人物的攻击力倍率
KICK& && && && && && && && && && &;将当前人物踢下线
KILL 数值& && && && && && && && &&&;将当前人物杀死,并设置杀死类型
KILLSLAVE& && && && && && && && &&&;将当前人物的宝宝全部杀死
CLEARPASSWORD& && && && && && && && &;清除当前人物的仓库密码
RestRenewLevel& && && && && && && && &;将人物的转生次数复位为零,即未转生
DELMARRY& && && && && && && && && & ;清除当前人物的结婚信息
DELMASTER& && && && && && && && &&&;清除当前人物的拜师信息
RENEWLEVEL 转次数 转后等级 0& && && && &&&;将当前人物转生,并设置转生次数以及转生后人物等级跳到多少级
SENDMSG 信息类型代码 %s信息内容%d& && && & ;发送文字信息
CLEARMAPMON 地图号& && && && && && &&&;清除指定地图的所有怪物
RESTBONUSPOINT& && && && && && && && &;清楚当前人物的属性点
PARAM1 地图& && && && && && && && &&&;NPC指定刷怪地图
PARAM2 横坐标& && && && && && && && &;NPC刷怪X坐标
PARAM3 纵坐标& && && && && && && && &;NPC刷怪Y坐标
MONGEN 怪物名称 数量 时间& && && && && & ;NPC刷怪命令+怪物+数量+时间
takew可以取走身上装备的物品)
close 结束?
mapmove 移动地图(例如:mapmove 0 634 612)
map 移动地图(不需要具体坐标.例如:map 0)
timerecall 在规定时间内召回(timerecall 5 在5分钟之内召唤回原地图)
takecheckitem 收取checkitem过的物品(不加任何参数)
monclear 清空地图怪物(monclear 0 清空0地图上的所有怪物)
exchangemap 互换地图(exchangemap 地图代码)
recallmap 把某地图的人召唤过来(recallmap 地图代码)
batchdelay 1
addbatch 2
batchmove 3 (此3个连用可以瞬移地图用于赌场)
playdice ?
addnamelist 增加名单?
delnamelist 删除名单?
goquest ?开始探索?
denquest ?结束探索?
goto 转向段落(goto @normal 转向[@normal]段落)
#if 条件语句(#if 如果...)
#act 结果语句(#act 那么...)
#elseact 结果语句(#elseact 否则...)
#say 结果语句(#say 接显示对话内容)
#elsesay 结果语句(#elsesay 接显示对话内容)
[] [@main]这样的段落可以被goto @main识别
\ 语言的换行,太长的语言将被显示在对话框之外
<> 交谈选项例如<关 闭/@exit>,在传奇中显示为黄色可点选的关闭字样,也有goto 只含义
/ 分隔符,像上例中的分隔显示语言与脚本语言
; 注释符号,加在一行之首,那么这行文字将作为注释理解,不显示也不加入脚本语言编译
地图属性(mapinfo中地图代码后的英文含义)
safe 安全区不可pk
dark 黑暗区域需要蜡烛火把,就是没有免蜡时候的效果
fight 战斗区域,允许pk
fight3 战斗区域,曾用在行会战争地图中,应该是战斗不掉东西,包括祈祷系列
day 白天,免蜡
quiz ?小考,在g001和g002地图中使用
noreconnect 掉线后跳出地图,noreconnect(地图代码)掉线后被传送到某地图
checkquest 询问地图(进入此地图会弹出对话框)checkquest(q1404)内容在mapquest_def文件夹中
needset_on 检查人物属性needset_on(406)必须赋有406属性的人才可进入
needset_off ?
needhole 需要一个洞才可以进去的地图,用于尸王殿和桃源之门
norecall 不能被记忆一套召回的地图
norandommove 不能使用随机传送卷的地图
mine 可以挖矿的地图
nopositionmove 不能使用地牢逃脱卷的地图
------定义变量-----
RANDOM 随机数& && && && && && && && &;一般用在#IF语句中作为触发#IF机率,
EQUAL 变量名 数值& && && && && && && & ;检测变量是否等于指定数值
LARGE 变量名 数值& && && && && && && & ;检测变量是否大于指定数值
SMALL 变量名 数值& && && && && && && & ;检测变量是否小于指定数值
MOV 变量名 数值& && && && && && && & ;给予变量赋于指定值
INC 变量名 数值& && && && && && && & ;给予变量加上指定值
DEC 变量名 数值& && && && && && && & ;给予变量减去指定值
SUM 变量名A 变量名B& && && && && && &&&;将两个变量相加
MOVR 数值& && && && && && && && &&&;变量赋予小于指定数值的随机非负数
<$STR(变量)>& && && && && && && && &;把变量转为字符串
SET [变量名] 数值& && && && && && && & ;定义变量
RESET [变量名] 连续数字& && && && && && &;连续将变量清零
CHECK [变量数值] 数值& && && && && && &;检测变量是否等于指定数值
------服务器固定变量-----
<$USERNAME>& && && && && && && && &&&;人物名称
<$GUILDNAME>& && && && && && && && &;行会名称
<$RANKNAME>& && && && && && && && &&&;行会职位名称
<$LEVEL>& && && && && && && && && & ;等级
<$HP>& && && && && && && && && && &;生命值
<$AC>& && && && && && && && && && &;防御力
<$MAXAC>& && && && && && && && && & ;最高防御力
<$MAC>& && && && && && && && && & ;魔法防御力
<$MAXMAC>& && && && && && && && &&&;最高魔法防御力
<$DC>& && && && && && && && && && &;物理攻击力
<$MAXDC>& && && && && && && && && & ;最高物理攻击力
<$MC>& && && && && && && && && && &;魔法力
<$MAXMC>& && && && && && && && && & ;最高魔法力
<$SC>& && && && && && && && && && &;道术
<$MAXSC>& && && && && && && && && & ;最高道术
<$EXP>& && && && && && && && && & ;当前经验值
<$MAXEXP>& && && && && && && && &&&;升级经验值
<$PKPOINT>& && && && && && && && &&&;PK点数
<$CREDITPOINT>& && && && && && && && &;声望点数
<$GOLDCOUNT>& && && && && && && && &;金币数量
<$GAMEGOLD>& && && && && && && && &&&;游戏币数
<$GAMEPOINT>& && && && && && && && &;游戏点数
<$HW>& && && && && && && && && && &;腕力
<$MAXHW>& && && && && && && && && & ;最高腕力
<$BW>& && && && && && && && && && &;背包重量
<$MAXBW>& && && && && && && && && & ;最高背包重量
<$WW>& && && && && && && && && && &;负重力
<$MAXWW>& && && && && && && && && & ;最高负重
<$HUNGER>& && && && && && && && &&&;饥饿程度
<$LOGINTIME>& && && && && && && && &;登录时间
<$LOGINLONG>& && && && && && && && &;登录时长
<$DRESS>& && && && && && && && && & ;衣服
<$WEAPON>& && && && && && && && &&&;武器
<$RIGHTHAND>& && && && && && && && &;蜡烛
<$HELMET>& && && && && && && && &&&;头盔
<$NECKLACE>& && && && && && && && &&&;项链
<$RING_R>& && && && && && && && &&&;右戒指
<$RING_L>& && && && && && && && &&&;右戒指
<$ARMRING_R>& && && && && && && && &;右手镯
<$ARMRING_L>& && && && && && && && &;左手镯
<$BUJUK>& && && && && && && && && & ;护身符
<$BELT>& && && && && && && && && & ;腰带
<$BOOTS>& && && && && && && && && & ;鞋子
<$CHARM>& && && && && && && && && & ;宝石
<$CASTLENAME>& && && && && && && && &;沙城名称
------服务器活动变量-----
<$SERVERNAME>& && && && && && && && &;服务器名字
<$SERVERIP>& && && && && && && && &&&;服务器IP地址
<$WEBSITE>& && && && && && && && &&&;游戏网址
<$BBSSITE>& && && && && && && && &&&;论坛网址
<$CLIENTDOWNLOAD>& && && && && && && & ;客户端程序下载地址
<$QQ>& && && && && && && && && && &;联系QQ号
<$PHONE>& && && && && && && && && & ;联系电话号码
<$BANKACCOUNT0>& && && && && && && & ;银行帐号信息
<$BANKACCOUNT1>& && && && && && && & ;银行帐号信息
<$BANKACCOUNT2>& && && && && && && & ;银行帐号信息
<$BANKACCOUNT3>& && && && && && && & ;银行帐号信息
<$BANKACCOUNT4>& && && && && && && & ;银行帐号信息
<$BANKACCOUNT5>& && && && && && && & ;银行帐号信息
<$BANKACCOUNT6>& && && && && && && & ;银行帐号信息
<$BANKACCOUNT7>& && && && && && && & ;银行帐号信息
<$BANKACCOUNT8>& && && && && && && & ;银行帐号信息
<$BANKACCOUNT9>& && && && && && && & ;银行帐号信息
<$GAMEGOLDNAME>& && && && && && && & ;游戏币名称
<$USERCOUNT>& && && && && && && && &;在线人数
<$DATETIME>& && && && && && && && &&&;当前日期时间
<$GAMEGOLDNAME>& && && && && && && & ;游戏币名称
<$HIGHLEVELINFO>& && && && && && && & ;最高等人物信息
<$HIGHPKINFO>& && && && && && && && &;最高PK点数人物信息
<$HIGHDCINFO>& && && && && && && && &;最高攻击力人物信息
<$HIGHMCINFO>& && && && && && && && &;最高魔法力人物信息
<$HIGHSCINFO>& && && && && && && && &;最高道术人物信息
& & 利用NPC发送信息。
& & SENDMSG 信息类型代码 %s信息内容%d
信息类型代码:
& & 1、发送普通红色广播信息。
& & 2、发送普通红色广播信息,并显示NPC名称。
& & 3、发送普通红色广播信息,并人物NPC名称。
& & 4、在NPC头顶,显示普通说话信息。
& & 5、发送红色信息给人物
& & 6、发送绿色信息给人物
& & 7、发送蓝色信息给人物
& & %s 代表人物名称
& & %d 代表NPC名称
GM之家论坛&&
传奇服务端
传奇一条龙
命令格式:
SENDMSG 0 %s信息内容%d
SENDMSG 1 %s信息内容%d
SENDMSG 2 %s信息内容%d
SENDMSG 3 %s信息内容%d
SENDMSG 4 %s信息内容%d
SENDMSG 5 %s信息内容%d
SENDMSG 6 %s信息内容%d
SENDMSG 7 %s信息内容%d
我非常喜欢
Powered byunity3d学习笔记(七)利用单例脚本实现英雄与怪物的攻击与受击
unity3d学习笔记(七)利用单例脚本实现英雄与怪物的攻击与受击
本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢。http://blog.csdn.net/lzhq1982/article/details/我们的世界有了怪物,那么你怎么忍心不去虐他们一下,勇士,挥舞你的大刀,去砍他们吧。呃,有点血腥,少儿不宜。如上一篇所说,我这里的交互全是在单例脚本中实现的。命名为BattleScene,单例脚本负责事件的分发和传递,Hero和Monster脚本负责触发和接收处理消息,设计理念是在Hero脚本中你绝对看不到Monster,同样,Monster脚本中,你也看不到Hero,他们都在单例脚本中,单例脚本中有这么一段核心的消息传递代码:[csharp]&public&void&SendGameMessage&T&(MESSAGE_TYPE&type,&T&t)&&&&&&{&&&&&&&&&&switch&(type)&{&&&&&&&&&&case&MESSAGE_TYPE.MESSAGE_HERO_RUN_AT_TARGET:&&&&&&&&&&&&&&_hero.SendMessage("RunAtTarget",&t);&&&&&&&&&&&&&&break;&&&&&&&&&&case&MESSAGE_TYPE.MESSAGE_HERO_BE_HURT:&&&&&&&&&&&&&&_hero.SendMessage("ReduceHp",&t);&&&&&&&&&&&&&&break;&&&&&&&&&&case&MESSAGE_TYPE.MESSAGE_ENEMY_BE_HURT:&&&&&&&&&&&&&&if&(_enemy)&&&&&&&&&&&&&&&&&&_enemy.SendMessage("BeHurt");&&&&&&&&&&&&&&break;&&&&&&&&&&case&MESSAGE_TYPE.MESSAGE_ENEMY_REDUCE_HP:&&&&&&&&&&&&&&if&(_enemy)&&&&&&&&&&&&&&&&&&_enemy.SendMessage("ReduceHp",&t);&&&&&&&&&&&&&&break;&&&&&&&&&&}&&&&&&}&&每一条消息传递一个交互,现在看不懂没关系,下面我再细细讲解,只是这里的&T&,如果有人不清楚,可以说一下,它是C#里的泛型的概念,C++里也有类似的模板,说白了,就是可以代替你想要的类型,用处很广,这里用来传递数值,因为不知道数值会是什么类型,所以泛型就大显神威了。言归正传,我的英雄和怪物的交互流程是这样的,点击一个怪-&英雄跑过去-&英雄发起攻击-&怪物受击-&怪物反击-&英雄受击-&英雄继续攻击-&如此反复,直到一方死去。下面就按照这个流程看看我是怎么实现的。1、点击一个怪[csharp]&void&OnMouseDown()&&&&&&{&&&&&&&&&&BattleScene.GetInstance().SendGameMessage&GameObject&(BattleScene.MESSAGE_TYPE.MESSAGE_HERO_RUN_AT_TARGET,&gameObject);&&&&&&}&&这是怪物脚本上的响应鼠标点击的函数,就一句,向单例脚本发消息,第一个参数是消息类型,第二个参数是传递的数值,这里传的是怪物的gameobject。然后你可以对照上面的消息传递代码,向hero脚本的RunAtTarget()这个函数传递消息,意思是英雄啊,你该向那个怪跑了。2、英雄跑过去[csharp]&void&RunAtTarget(GameObject&obj)&&&&&&{&&&&&&&&&&BattleScene.GetInstance().Enemy&=&&&&&&&&&&&curState&=&en_state.en_state_&&&&&&&&&&isHunting&=&true;&&&&&&}&&[csharp]&case&en_state.en_state_run:&&&&&&&&&&&&&&curAnimClip&=&animation["Run"].&&&&&&&&&&&&&&gameObject.animation.CrossFade(curAnimClip.name);&&&&&&&&&&&&&&Vector3&forward&=&transform.TransformDirection(Vector3.forward);&&&&&&&&&&&&&&_controller.SimpleMove(forward&*&runSpeed);&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(BattleScene.GetInstance().Enemy)&{&&&&&&&&&&&&&&&&&&smoothRotate(BattleScene.GetInstance().Enemy.transform.position);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&else&if&(runTarget&!=&Vector3.zero)&{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&。。。&&&&&&&&&&&&&&}&&&&&&&&&&&&&&break;&&RunAtTarget的参数传递的是怪物的gameobject,但我不会将这个怪物存在hero脚本中,我把它传给了单例脚本,以后想要获得这个怪物信息,找单例脚本要去,这里粘一下单例脚本的Enemy代码[csharp]&public&GameObject&Enemy&&&&&&{&&&&&&&&&&get&{return&_}&&&&&&&&&&set&{_enemy&=&}&&&&&&}&&C#的这种get和set方式挺简便的,我就给试上了。然后在update的状态机里处理奔跑,把以前单纯的奔跑改了一下,如果有Enemy,就向Enemy平滑转身,smoothRotate是处理平滑转身的,不清楚的可以在我前面的文章里找到详细代码。3、英雄发起攻击[csharp]&if&(isHunting)&{&&&&&&&&&&&&&&if&(BattleScene.GetInstance().IsInAttackArea())&{&&&&&&&&&&&&&&&&&&curState&=&en_state.en_state_&&&&&&&&&&&&&&&&&&BattleScene.GetInstance().SendGameMessage&int&(BattleScene.MESSAGE_TYPE.MESSAGE_ENEMY_BE_HURT,0);&&&&&&&&&&&&&&&&&&isHunting&=&false;&&&&&&&&&&&&&&}&&&&&&&&&&}&&[csharp]&case&en_state.en_state_attack:&&&&&&&&&&&&&&if&(BattleScene.GetInstance().Enemy)&{&&&&&&&&&&&&&&&&&&AnimationState&state&=&animation[curAnimClip.name];&&&&&&&&&&&&&&&&&&if&(state.time&&=&state.length-0.1f)&{&&&&&&&&&&&&&&&&&&&&&&int&rand&=&Random.Range(0,3);&&&&&&&&&&&&&&&&&&&&&&if&(rand&==&0)&&&&&&&&&&&&&&&&&&&&&&&&&&curAttackState&=&attack_state.attack_state_0;&&&&&&&&&&&&&&&&&&&&&&else&if&(rand&==&1)&&&&&&&&&&&&&&&&&&&&&&&&&&curAttackState&=&attack_state.attack_state_1;&&&&&&&&&&&&&&&&&&&&&&else&if&(rand&==&2)&&&&&&&&&&&&&&&&&&&&&&&&&&curAttackState&=&attack_state.attack_state_2;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&isReduceEnemyHp&=&&true;&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&if&(state.time&&=&state.length/2&&&&state.time&&&state.length-0.1f)&{&&&&&&&&&&&&&&&&&&&&&&if&(isReduceEnemyHp)&{&&&&&&&&&&&&&&&&&&&&&&&&&&isReduceEnemyHp&=&false;&&&&&&&&&&&&&&&&&&&&&&&&&&BattleScene.GetInstance().SendGameMessage&int&(BattleScene.MESSAGE_TYPE.MESSAGE_ENEMY_REDUCE_HP,&20);&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(curAttackState&==&attack_state.attack_state_0)&&&&&&&&&&&&&&&&&&&&&&curAnimClip&=&animation["Attack"].&&&&&&&&&&&&&&&&&&else&if&(curAttackState&==&attack_state.attack_state_1)&&&&&&&&&&&&&&&&&&&&&&curAnimClip&=&animation["Attack00"].&&&&&&&&&&&&&&&&&&else&if&(curAttackState&==&attack_state.attack_state_2)&&&&&&&&&&&&&&&&&&&&&&curAnimClip&=&animation["Attack01"].&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&animation.CrossFade(curAnimClip.name);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&transform.Translate(Vector3.zero);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&else&{&&&&&&&&&&&&&&&&&&curState&=&en_state.en_state_&&&&&&&&&&&&&&&&&&curAnimClip&=&animation["Attack"].&&&&&&&&&&&&&&}&&&&&&&&&&&&&&break;&&代码有点长,前面的代码是在update里随时判断英雄是否跑到怪物身边,也就是是否在攻击范围内,如果是,置攻击状态,在状态机里处理,同时给怪物发消息,你受到攻击了,不要再悠闲的溜达了,赶紧还击吧。判断攻击范围代码如下:[csharp]&public&bool&IsInAttackArea()&&&&&&{&&&&&&&&&&if&(_hero&&&&_enemy)&{&&&&&&&&&&&&&&CharacterController&enemyController&=&_enemy.GetComponent&CharacterController&();&&&&&&&&&&&&&&CharacterController&heroController&=&_hero.GetComponent&CharacterController&();&&&&&&&&&&&&&&float&dist&=&Vector3.Distance(_hero.transform.position,&_enemy.transform.position);&&&&&&&&&&&&&&if&(dist&&=&enemyController.radius+heroController.radius+1.0f)&&&&&&&&&&&&&&&&&&return&true;&&&&&&&&&&}&&&&&&&&&&return&false;&&&&&&}&&注意这段代码是在单例脚本里的,因为要用到hero和enemy,原理就是用他们的CharacterController得到他们的半径,如果他们的距离小于这两个半径之和,就说明发生碰撞了,就可以攻击了,加1是不想他们太近而已,哈哈。接着说状态机里处理攻击的部分,先获得攻击动画的属性,如果该攻击动画要播完了,就随机出下一个攻击动画,我这里有三个攻击动作用来随机,如果攻击动作播了一半了,大概就是刀落在怪身上了,向怪发出掉血消息,如果怪物没了,则重置英雄为休息状态。这里插播一下怪物掉血,当英雄砍到怪物身上后,发出怪掉血信息,怪接收到掉血信息,如上面单例脚本的消息传递部分,执行ReduceHp代码。[csharp]&void&ReduceHp(int&nHp)&&&&&&{&&&&&&&&&&curHP&-=&nHp;&&&&&&&&&&if&(curHP&&=&0)&{&&&&&&&&&&&&&&BattleScene.GetInstance().Enemy&=&null;&&&&&&&&&&&&&&Destroy(gameObject);&&&&&&&&&&}&&&&&&}&&代码很简单,怪物累积减血,当血量小于等于零时,怪物死亡,删除掉该怪物,其实如果有死亡动画,播动画更好,我这里没有,就直接删了。4、怪物受击[csharp]&void&BeHurt()&&<span style
发表评论:
TA的最新馆藏[转]&}

我要回帖

更多关于 脚本怎么写 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信