»
首页
|
手机数码
|
汽车资讯
|
游戏硬件
|
评测专题
|
手机壁纸
|
海淘值得买
|
度假
|
求职招聘
|
广告联系
» 您尚未登录:请
登录
|
注册
|
标签
|
帮助
|
小黑屋
|
TGFC Lifestyle
»
暴雪游戏专区
» 继续请教新的宏改良方法,请firesun进
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
继续请教新的宏改良方法,请firesun进
Ming
小黑屋
帖子
5736
精华
0
积分
26213
激骚
0 度
爱车
主机
相机
手机
注册时间
2000-12-9
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2005-6-14 22:01
只看该作者
例1:
/cast 自然迅捷
/cast 治疗之触(等级 8)
/script TargetUnit("player"
以上的宏作用是按第1下先施放3分钟冷却的自然迅捷,按第2下就施放治疗之触(等级 8)。这个宏我只能用于给自己连续施放这2个法术,无论我选定的目标是什么,因为按第1次的时候,目标会自动切换成我自己,所以按第2次就给自己施放了治疗了。请问怎么才能改写一下,让作用变为:如果我选定的是敌人或没有选定任何目标,则给自己施放治疗之触(等级 8);如果我选定的是队友或其他同阵营的玩家,则对他施放治疗之触(等级 8)。
例2:
/cast 治疗之触(等级 8)
/script if ( UnitName("target"
~=nil and UnitIsFriend("player","target"
) then SendChatMessage("开始对 %T 施放耗时3.5秒且容易OT的大治疗法术", "EMOTE"
; end
以上的宏作用是当我选定友方目标的时候,我按宏键,就会给友方目标施放治疗之触(等级 8)。但是存在缺陷,当我选定的目标是敌人或者没有选定目标的时候,按宏键,无法给自己施放治疗之触(等级 8)。请问怎么才能改写一下,让作用变为:如果我选定的是敌人或没有选定任何目标,则给自己施放治疗之触(等级 8);如果我选定的是队友或其他同阵营的玩家,则对他施放治疗之触(等级 8)。
其实以上2段宏都用了不同的处理目标的脚本,但是都无法两全其美,换用则等于缺陷互换而已。望高人指导。
UID
2403
帖子
5736
精华
0
积分
26213
交易积分
0
阅读权限
1
在线时间
66 小时
注册时间
2000-12-9
最后登录
2019-11-19
查看详细资料
TOP
firesun
火炎之日
魔神至尊
脑白金推广委员会
帖子
21952
精华
1
积分
67660
激骚
308 度
爱车
任意门
主机
如果电话亭
相机
时光照相机
手机
来自
东北人在上海
注册时间
2002-4-16
发短消息
加为好友
当前在线
2
#
大
中
小
发表于 2005-6-14 22:55
只看该作者
第二个
/cast 治疗之触(等级 8)
/script if (not UnitIsFriend("player", "target"
then target("player"
;end
/script if ( UnitName("target"
~=nil and UnitIsFriend("player","target"
) then SendChatMessage("开始对 %T 施放耗时3.5秒且容易OT的大治疗法术", "EMOTE"
; end
其实就是增加一点条件
原理是这样的:
/施放 魔法×××
(说明)-如果这个时候选择了友方角色,那么运行到这里的时候已经施放给队友了。
(说明)-如果这个时候没有选择目标或者选择敌人,那么这个时候相当于鼠标变成选择目标的图标,就好像你没有选择目标的情况下使用恢复魔法那样效果
/script if(目标不是友方 )then 施放给自己
(说明)这个就相当于选择目标的操作,如果是友方的话就不用这个操作了。
UID
2200
帖子
21952
精华
1
积分
67660
交易积分
0
阅读权限
50
来自
东北人在上海
在线时间
18863 小时
注册时间
2002-4-16
最后登录
2024-11-23
查看个人网站
查看详细资料
TOP
暴走男
小黑屋
帖子
6208
精华
0
积分
8414
激骚
0 度
爱车
主机
相机
手机
注册时间
2004-1-18
发短消息
加为好友
当前离线
3
#
大
中
小
发表于 2005-6-15 10:46
只看该作者
1、一个宏是不允许有2个Cast的。
2、其实给自己加血用SelfCast最高。写宏不够麻烦的
UID
19348
帖子
6208
精华
0
积分
8414
交易积分
0
阅读权限
1
在线时间
238 小时
注册时间
2004-1-18
最后登录
2013-5-4
查看详细资料
TOP
Ming
小黑屋
帖子
5736
精华
0
积分
26213
激骚
0 度
爱车
主机
相机
手机
注册时间
2000-12-9
发短消息
加为好友
当前离线
4
#
大
中
小
发表于 2005-6-15 21:00
只看该作者
谢firesun指点,问题解决了,在国家地理发了2贴也没能得到解答。继续请教新的宏:
以下例子:
/say 月神艾露尼,请以野兽之力赐福 %t。
/script l={1,10,20,30,40,50,60};
/script t=UnitLevel("target"
;
/script for j=5,1,-1 do if (t>=l[j]-10) then CastSpellByName("野性印记(等级 "..j.."
"
;break;end;end;
宏的作用是按目标的级别施放相应等级的野性印记,但是如果选择了敌对目标或者没有选择目标,则不会对自己施放印记,而且/say也说出了错误的语句。
请问有办法改良成:如果选择了敌对目标或者没有选择目标,则会对自己施放最大等级(由j=5决定)的印记,而且这个时候不会运行/say说话。
UID
2403
帖子
5736
精华
0
积分
26213
交易积分
0
阅读权限
1
在线时间
66 小时
注册时间
2000-12-9
最后登录
2019-11-19
查看详细资料
TOP
Ming
小黑屋
帖子
5736
精华
0
积分
26213
激骚
0 度
爱车
主机
相机
手机
注册时间
2000-12-9
发短消息
加为好友
当前离线
5
#
大
中
小
发表于 2005-6-15 21:05
只看该作者
1、是的不允许,我那个宏是连按2下来实现作用的
2、写宏主要是想一个键就可以实现对别人或对自己的综合性智能加血,自己加血一个给别人加血一个就不方便了
暴走男在上个帖子中说
引用:
1、一个宏是不允许有2个Cast的。
2、其实给自己加血用SelfCast最高。写宏不够麻烦的
UID
2403
帖子
5736
精华
0
积分
26213
交易积分
0
阅读权限
1
在线时间
66 小时
注册时间
2000-12-9
最后登录
2019-11-19
查看详细资料
TOP
firesun
火炎之日
魔神至尊
脑白金推广委员会
帖子
21952
精华
1
积分
67660
激骚
308 度
爱车
任意门
主机
如果电话亭
相机
时光照相机
手机
来自
东北人在上海
注册时间
2002-4-16
发短消息
加为好友
当前在线
6
#
大
中
小
发表于 2005-6-16 00:54
只看该作者
/script l={1,10,20,30,40,50,60};
/script t=UnitLevel("target"
;
/script if( not UnitIsFriend("player","target"
) then CastSpellByName("野性印记(等级 "..j.."
"
else for j=5,1,-1 do if (t>=l[j]-10) then CastSpellByName("野性印记(等级 "..j.."
"
;break;end;SendChatMessage("月神艾露尼,请以野兽之力赐福 %t。","SAY"
;end;
试试看吧,或许有一些语法上面的错误,比如多一个少一个括号,或者差个逗号分号什么的
没有办法检查……抱歉,大体应该这样吧
UID
2200
帖子
21952
精华
1
积分
67660
交易积分
0
阅读权限
50
来自
东北人在上海
在线时间
18863 小时
注册时间
2002-4-16
最后登录
2024-11-23
查看个人网站
查看详细资料
TOP
控制面板首页
密码修改
积分交易
积分记录
公众用户组
基本概况
版块排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队
管理统计