找回密码
 注册
搜索
查看: 2632|回复: 12

关于常用机器中使用武器的问题(check_weapon别名分析)

[复制链接]
门派:不明
发表于 2014-3-25 08:30:49 | 显示全部楼层 |阅读模式
本帖最后由 mookttt@tx 于 2014-3-25 09:51 编辑

以sunqi的机器为例:

check_weapon的大致流程是这样:

1.把手上拿的武器下了;

2.检测身上有没有要用的武器;

3.没有武器就去买。

具体看代码:

第一步:用不用武器
  1. #al check_weapon {#al temp_weapon {%-1};
  2. unwield @fight_weapon;
  3. #if @a_weapon {#t+ check_weapon;
  4. #if %ismember(@myweapon,none) {} {fight_weapon=@myweapon};
  5. noweapon=0;
  6. wield @fight_weapon;
  7. #if %ismember(@party,wudang) {#va normal_weapon {mu jian}};
  8. alias action 自己的兵器准备好了吗} {ta;
  9. setdo {temp_weapon}}}
复制代码
具体意思是:

1.temp_weapon是执行完了check_weapon后要做的事,这个不用管;

2.如果设置了使用武器(@a_weapon为1),对fight_weapon赋值,如果是武当的,对normal_weapon赋值木剑。

第二步,检测身上有没有武器

  1. #TRIGGER {^{> 你|你}把 "action" 设定为 "自己的兵器准备好了吗" 成功完成。} {#if @noweapon {noweapon=0;#if %ismember(@fight_weapon,@myweapon) {fight_weapon=@normal_weapon;wield @fight_weapon;myweapon=none;alias action 自己的兵器准备好了吗} {#t- check_weapon;weapon_get}} {#t- check_weapon;ta;setdo {temp_weapon}}} {check_weapon} 548
  2. #TRIGGER {^{> 你|你}身上没有这样东西。} {noweapon=1} {check_weapon} 548
  3. #TRIGGER {^{> 你|你}只能装备可当作武器的东西} {noweapon=1} {check_weapon} 548
  4. #TRIGGER {^{> 你|你}必须先放下你目前装备的武器。} {unwield mu jian;unwield mu jian 2;unwield changjian;unwield changjian 2;unwield changjian 3;unwield changjian 4;unwield changjian 5} {check_weapon} 548
复制代码
第三步,买武器
  1. #ALIAS weapon_get {#t- check_weapon;unwield @fight_weaponta;unwield @normal_weapon;unwield @learn_weapon;unwield @heqi_weapon;s;w;w;s;s;w;qu 1 gold;e;n;n;e;e;n;ta;setdo {buyweapon}}
复制代码
机器本来就是这样的unwield @fight_weaponta是写错了,这里应该是sunqi重新写过了,老的鱼肠机器是这样的,
  1. #ALIAS weapon_get {#t- check_weapon;s;w;w;s;s;w;qu 1 gold;e;n;n;e;e;n;ta;setdo {buyweapon}}
复制代码
再来分析下无限买木剑的问题(sunqi的机器不太可能有这个问题了,老的鱼肠机器会有这个问题。)

1.首先是变量@party,一般都不会去管这个,所以可能就是“wudang”了,所以默认normal_weapon是木剑。

2.假设check_weapon之前,你手上拿了一把合气宝物,check_weapon检测不到你身上有打造武器(@fight_weapon),会设置@fight_weapon为@normal_weapon(木剑),去买木剑;

3.买了木剑回来,仍然检测不到你身上有@fight_weapon(就是木剑),继续买木剑,这就是一个死循环,直到你饿掉线。

评分

1

查看全部评分

门派:不明
 楼主| 发表于 2014-3-25 09:12:54 | 显示全部楼层
本帖最后由 mookttt@tx 于 2014-3-25 09:54 编辑

继续分析武器的问题,

常用的武器主要有:

1.学习用的悟性武器,一般设置为@learn_weapon;

2.增加合气的宝物,一般设置为@heqi_weapon;

3.打造武器,比如慕容,峨眉,神龙岛,都有两种兵器技能,一般设置为@fight_weapon,@fight_weapon1(这里可能还需要个备用的,比如说你用的@fight_weapon被乞丐要去了,任务被npc没收了或打断了,需要一个备用武器,可以考虑设置为@fight_weapon_back,@fight_weapon1_back);

4.其他,华山任务切头,去天山、神龙岛路上用,一般为长剑。(具体设置在华山任务触发里,天山路径文件,别名sld_in里面),我觉得统一设置成@weapon比较简单。

再来看设置武器按钮:
  1. #yesno 是否使用兵器? {Yes:a_weapon=1;
  2. #pr myweapon 如果需要使用【打造】武器,请输入全称,否则输入none;
  3. #pr normal_weapon 请输入没有【打造】武器而使用的武器;
  4. fight_weapon=@myweapon} {No:#unv a_weapon;
  5. fight_weapon=none;
  6. normal_weapon=none}
复制代码
搞清楚了武器以后,按钮可以这样设置:
  1. #yesno 是否使用兵器? {Yes:a_weapon=1;
  2. #pr fight_weapon 如果需要使用第一把【打造】武器,请输入全称,否则输入none;
  3. #pr fight_weapon1 如果需要使用第二把【打造】武器,请输入全称,否则输入none;
  4. #pr fight_weapon_back 请输入没有第一把【打造】武器而使用的武器;
  5. #pr fight_weapon1_back 请输入没有第二把【打造】武器而使用的武器;
  6. #pr learn_weapon 请输入学习武器,请输入全称,否则输入none;
  7. #pr weapon 请输入切头砍树武器;
  8. } {No:#va a_weapon 0;
  9. fight_weapon=none;
  10. fight_weapon1=none;
  11. fight_weapon_back=none;fight_weapon1_back=none;#pr weapon 请输入切头砍树武器;
  12. }
复制代码
不管你是用武器,还是空手,切头砍树都要用武器的。
门派:不明
 楼主| 发表于 2014-3-25 09:45:52 | 显示全部楼层
本帖最后由 mookttt@tx 于 2014-3-25 09:55 编辑

继续分析check_weapon的问题,

对于利用wield武器来检测身上有没有武器,我觉得不是很好,以前用的峨眉版块的机器不是这样的,忘记了是哪个了。

依然是三步:

第一步:把手上的武器都卸下来;
  1. #al temp_weapon {%-1};
  2. #if %ismember(@fight_weapon,none) {#va iwuqi 1} {#va iwuqi 0;}
  3. #if %ismember(@fight_weapon1,none) {#va iwuqi1 1} {#va iwuqi1 0;}
  4. #va iwuqi2 0;
  5. unwield @fight_weapon;
  6. unwield @fight_weapon1;
  7. unwield @weapon;
  8. #t+ check_weapon;
  9. i;
  10. alias action 自己的兵器准备好了吗
复制代码
第二步:检测身上有没有相应的武器

#TRIGGER {^  (*){柄|把|根|只}*~(@fight_weapon1~)} {ctonumb %1;#add iwuqi1 @numb} {常规} 519
#TRIGGER {^  (*){柄|把|根|只}*~(@fight_weapon~)} {ctonumb %1;#add iwuqi @numb} {常规} 519
#TRIGGER {^  (*){柄|把|根|只}*~(@weapon~)} {ctonumb %1;#add iwuqi2 @numb} {常规} 519

如果当铺地上有别人扔的武器,会出错

第三步:没有武器就去买武器
  1. #TRIGGER {^{> 你|你}把 "action" 设定为 "自己的兵器准备好了吗" 成功完成。} {#if (@iwuqi<1)|(@iwuqi1<1)|(@iwuqi2<1) {#if (@iwuqi<1) {#va fight_weapon @fight_weapon_back} {#if (@iwuqi1<1) {#va fight_weapon1 @fight_weapon1_back}};#t- check_weapon;weapon_get;} {#t- check_weapon;ta;setdo {temp_weapon}}} {check_weapon} 548
复制代码
  1. #ALIAS weapon_get {#t- check_weapon;s;w;w;s;s;w;qu 1 gold;e;n;n;e;e;n;ta;setdo {buyweapon}}
复制代码
  1. #ALIAS buyweapon {ta;setdo {s;#13 e;ta;setdo {#2 s;#3 e;s;buy @fight_weapon;bbb {buy @fight_weapon1;bbb {buy @weapon;ta;setdo {n;w;w;w;n;n;ta;setdo {#13 w;n;i;ta;setdo {check_weapon}}}}}}}}
复制代码
特别注意:如果你变量@weapon,@fight_weapon_back,@fight_weapon1_back设置错误,扬州铁匠铺买不到的话,也是一个死循环。
门派:不明
 楼主| 发表于 2014-3-25 09:48:13 | 显示全部楼层
本帖最后由 mookttt@tx 于 2014-3-25 09:57 编辑

其他,武器在pfm设置中也要用到,

具体还是要自己改的,

感觉这个武器设置很难做到傻瓜化啊。

这个只是一点见解,怎么样做到完美,还是自己去想吧,

只是分析下,提供一个思路。
门派:不明
发表于 2014-3-25 13:09:52 | 显示全部楼层
人才啊,这对于很多新手来说是很好的教材。
门派:不明
发表于 2014-3-25 18:47:15 | 显示全部楼层
感谢新手教材                        
门派:不明
发表于 2014-3-26 21:45:56 | 显示全部楼层
分析的很透彻啊。继续分析别的看看
门派:不明
发表于 2014-3-26 22:12:10 | 显示全部楼层
recollec@tx 发表于 2014-3-26 21:45
分析的很透彻啊。继续分析别的看看

你想分析啥?                    
门派:不明
发表于 2014-3-26 22:58:02 | 显示全部楼层
怎么用代码模式啊                  
                        
门派:不明
发表于 2014-3-27 17:06:15 | 显示全部楼层
很牛X的样子,不过现在很多人都是用现成的了,太专业没有办法去改
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-8-8 01:15 , Processed in 0.032592 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表