由于各大机场最近陆续瘫痪,准备自己弄个巨集开机场~喵君进
macro吧
全部回复
仅看楼主
level 7
kevinct 楼主
机场巨集本身没问题~
部分不同的功能我在研究
由于这个机场我是打算免费供应,并且不打算面对所有人
所以打算在巨集里加一个字函数,专门用来加入可使用者的ID名单,方便日后添加更多的ID
运行时自动判断使用者是否匹配名单来做出反应
喵君有什么好的建议么?OP的巨集可使用数组么?
2012年10月29日 04点10分 1
level 14
求VIP……[Kiss]
2012年10月29日 07点10分 3
level 1
貌似可以指定公会
2012年10月30日 01点10分 4
工会范围太大了吧…
2012年10月30日 01点10分
level 7
可以支持数组的,可以从txt文件里边提取名字,用逗号分割,放进数组里边好像。没试过诶
2012年10月30日 10点10分 5
level 7
可以支持数组的,可以从txt文件里边提取名字,用逗号分割,放进数组里边好像。没试过诶
2012年10月30日 10点10分 6
level 7
建议开始的时候就,把$guild里边取成说话的玩家名字就好了
if ("$guild" == "舞") goto status
if ("$guild" == "@阿曼達@") goto status
if ("$guild" == "Rising_Sun") goto status
if ("$guild" == "Baby-Kingdom") goto status
if ("$guild" == "°Real.Madrid°") goto status
if ("$guild" == "恋海-天下无双") goto status
if ("$guild" == "心°系ξ每一刻") goto status
if ("$guild" == "☆皇家马德里☆") goto status
读文件我在试。写好了我发出来一起看看
2012年10月30日 11点10分 7
我只是想用一个函数就表示出来 公会名单和人员名单专门放在专门的函数里,这样方便以后管理和添加新的名单
2012年10月31日 03点10分
支持数组的话,用循环遍历一下数组这种最简单的方法就可以实现了,两个数组专门存放名单~~ 但是貌似不支持啊
2012年10月31日 03点10分
回复 kevinct :可以@array("sdf","wrw","afaww") 取值是$array[0] $array[1] $array[$i]
2012年10月31日 03点10分
回复 kevinct :我考虑的是,直接从txt文件中读取玩家列表。用open(FILE,"playerlist.txt"); 现在还有点点,问题,弄好了我发出来我们试试
2012年10月31日 03点10分
level 4

automacro pubmguild {
console /\[(距离|dist)=(.*)\] (.*) \((\d+)\): (鸟|套|中|斐)/
exclusive 1
call {
$i = $.lastMatch4
if ($.lastMatch2 > 9) goto stop
$g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
if ("$.lastMatch3" == "黑名单人物") goto stop
#有需要可以自己填入人名扩充,太多可能会影响效率。
#相对的改成goto ok,就可以没工会使用。
if ("$g" == "精灵.王道.风云再起") goto ok
if ("$g" == "[暴力美学联盟皇家学院]") goto ok
if ("$g" == ":+:乱舞-ShowTime:+") goto ok
stop
:ok
if ($.lastMatch5 == "鸟") goto mac01
if ($.lastMatch5 == "套") goto mac02
if ($.lastMatch5 == "中") goto mac03
if ($.lastMatch5 == "斐") goto mac04
stop :mac01
$x = @arg("$.pos", 1)
$y = @arg("$.pos", 2)
$y2 = @eval($y + -1)
do sl 27 $x $y2
pause 2
do warp prontera
do c ↓租鸟↓
stop
:mac02
do sp 361 $i 5
pause 1
stop
:mac03
$x = @arg("$.pos", 1)
$y = @arg("$.pos", 2)
$x2 = @eval($x + -1)
do sl 27 $x2 $y
pause 2
do warp prt_gld
do c ←中55
stop
:mac04
$x = @arg("$.pos", 1)
$y = @arg("$.pos", 2)
$x2 = @eval($x + 1)
do sl 27 $x2 $y
pause 2
do warp pay_gld
do c 红楼→
stop
:stop
stop
}
}
或高深更智能点的
do eval foreach my $_player (@{$::playersList->getItems()}) { next if $_player->{name} eq ""; next if $_player->{actorType} ne "Player"; if ($_player->{'binID'} eq "$n") {$::Macro::Data::varStack{name} = $_player->{'name'}; $::Macro::Data::varStack{job} = $_player->job; $::Macro::Data::varStack{lvl} = $_player->{'lv'}; $::Macro::Data::varStack{sex} = $::sex_lut{$_player->{'sex'}}; $::Macro::Data::varStack{dist} = sprintf("%.1f", distance($::char->{pos_to}, $_player->{pos_to})); $::Macro::Data::varStack{guild} = $_player->{guild} ? $_player->{guild}{name} : ''; $::Macro::Data::varStack{id} = $_player->{'binID'}; $::Macro::Data::varStack{status} = join (", ", keys %{$_player->{statuses}});}}

2012年11月04日 04点11分 8
我就是不想写成这样.... 我所想做的是,专门用两个文本存放玩家ID和公会名字,巨集只需要和这两个文件做通信读取数据进行匹配即可,就不用写一长串的If了。 我刚发现op用的是perl,我以前也没学过perl,所以不知道如何实现,现在基本知道方法了
2012年11月04日 09点11分
回复 kevinct :读文件来的比较妥当我也觉得
2012年11月04日 10点11分
插件帮到你!!!你说的就是插件.... 其实openkore不止巨集的 他还有形形式式的小插件 当然你够厉害的话 自己实现一个!!!!!
2012年11月04日 16点11分
回复 皇者X风范 :你说的插件,就是用perl语言自己构造的类或者函数,但实际用不着这么复杂。直接在巨集里面构造几个函数就够用了。
2012年11月04日 18点11分
level 4
不过其实如果只想方便点加人名 分开的话 考虑下插件
就可以在config设置了 不用在巨集里面写一大篇东西
写得愈多 运行愈慢
如 $actor->{ID|binID|name|type|x|y}
这些 方面到不得了
2012年11月04日 04点11分 9
写的好漂亮!
2012年11月04日 10点11分
感觉看到自己的巨集,就像腌菜一样。。。
2012年11月04日 10点11分
腌菜......
2012年11月04日 16点11分
level 7
kevinct 楼主
考虑了下 貌似可以结合 奇怪魔法师 大姨妈预警来做一个飞机场~
用进程通信来做公会和玩家名字匹配,然后用Net::ping模块来做对目标地图IP的侦测
一定很有趣
2012年11月04日 09点11分 10
@卡尔的喵 不过最大的问题是...我没有足够的祭司号
2012年11月04日 09点11分
就是啊就是啊!我也这么觉得!
2012年11月04日 10点11分
- -大量帐号~~之前的武僧飞机场也是我的
2012年11月04日 16点11分
回复 卡尔的喵 :猪大喵快把波多的奶妈都要来~
2012年11月05日 04点11分
1