Добавлено: Вс июн 24, 2007 9:31 pm
Так хочеццо ж малой кровью. 

Клуб любителей пляски с бубном вокруг OpenKore
https://ro-fan.ru/
Код: Выделить всё
sub cmdPlayerList {
my (undef, $args) = @_;
my $msg;
if ($args eq "g") {
my $maxpl;
my $maxplg=0;
$msg = T("-----------Player List-----------\n" .
"# Name Sex Lv Job Dist Coord\n");
foreach my $player (@{$playersList->getItems()}) {
my ($name, $dist, $pos);
$name = $player->name;
if ($char->{guild}{name} eq ($player->{guild}{name})) {
if ($player->{guild} && %{$player->{guild}}) {
$name .= " [$player->{guild}{name}]";
}
$dist = distance($char->{pos_to}, $player->{pos_to});
$dist = sprintf("%.1f", $dist) if (index ($dist, '.') > -1);
$pos = '(' . $player->{pos_to}{x} . ', ' . $player->{pos_to}{y} . ')';
$maxpl = @{$playersList->getItems()};
$maxplg = $maxplg+1;
$msg .= swrite(
"@<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<< @<< @<<<<<<<<<< @<<<< @<<<<<<<<<<",
[$player->{binID}, $name, $sex_lut{$player->{sex}}, $player->{lv}, $player->job, $dist, $pos]);
}
}
$msg .= "Total guild players $maxplg \n";
$msg .= "Total players $maxpl \n";
$msg .= "---------------------------------\n";
message($msg, "list");
return;
}
if ($args eq "p") {
my $maxpl;
my $maxplp=0;
$msg = T("-----------Player List-----------\n" .
"# Name Sex Lv Job Dist Coord\n");
foreach my $player (@{$playersList->getItems()}) {
my ($name, $dist, $pos);
$name = $player->name;
if ($char->{party}{name} eq ($player->{party}{name})) {
if ($player->{guild} && %{$player->{guild}}) {
$name .= " [$player->{guild}{name}]";
}
$dist = distance($char->{pos_to}, $player->{pos_to});
$dist = sprintf("%.1f", $dist) if (index ($dist, '.') > -1);
$pos = '(' . $player->{pos_to}{x} . ', ' . $player->{pos_to}{y} . ')';
$maxpl = @{$playersList->getItems()};
$maxplp = $maxplp+1;
$msg .= swrite(
"@<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<< @<< @<<<<<<<<<< @<<<< @<<<<<<<<<<",
[$player->{binID}, $name, $sex_lut{$player->{sex}}, $player->{lv}, $player->job, $dist, $pos]);
}
}
$msg .= "Total party players $maxplp \n";
$msg .= "Total players $maxpl \n";
$msg .= "---------------------------------\n";
message($msg, "list");
return;
}
if ($args ne "") {
my $player = Match::player($args);
if (!$player) {
error TF("Player \"%s\" does not exist.\n", $args);
return;
}
my $ID = $player->{ID};
my $body = $player->{look}{body} % 8;
my $head = $player->{look}{head};
if ($head == 0) {
$head = $body;
} elsif ($head == 1) {
$head = $body - 1;
} else {
$head = $body + 1;
}
my $pos = calcPosition($player);
my $mypos = calcPosition($char);
my $dist = sprintf("%.1f", distance($pos, $mypos));
$dist =~ s/\.0$//;
my %vecPlayerToYou;
my %vecYouToPlayer;
getVector(\%vecPlayerToYou, $mypos, $pos);
getVector(\%vecYouToPlayer, $pos, $mypos);
my $degPlayerToYou = vectorToDegree(\%vecPlayerToYou);
my $degYouToPlayer = vectorToDegree(\%vecYouToPlayer);
my $hex = getHex($ID);
my $playerToYou = int(sprintf("%.0f", (360 - $degPlayerToYou) / 45)) % 8;
my $youToPlayer = int(sprintf("%.0f", (360 - $degYouToPlayer) / 45)) % 8;
my $headTop = headgearName($player->{headgear}{top});
my $headMid = headgearName($player->{headgear}{mid});
my $headLow = headgearName($player->{headgear}{low});
$msg = TF("------------------ Player Info ------------------\n" .
"%s (%d)\n" .
"Account ID: %s (Hex: %s)\n" .
"Party: %s\n" .
"Guild: %s\n" .
"Position: %s, %s (%s of you: %s degrees)\n" .
"Level: %-7d Distance: %-17s\n" .
"Sex: %-6s Class: %s\n" .
"-------------------------------------------------\n" .
"Body direction: %-19s Head direction: %-19s\n" .
"Weapon: %s\n" .
"Shield: %s\n" .
"Shoes : %s\n" .
"Upper headgear: %-19s Middle headgear: %-19s\n" .
"Lower headgear: %-19s Hair color: %-19s\n" .
"Walk speed: %s secs per block\n",
$player->name, $player->{binID}, $player->{nameID}, $hex,
($player->{party} && $player->{party}{name} ne '') ? $player->{party}{name} : '',
($player->{guild}) ? $player->{guild}{name} : '',
$pos->{x}, $pos->{y}, $directions_lut{$youToPlayer}, int($degYouToPlayer),
$player->{lv}, $dist, $sex_lut{$player->{sex}}, $jobs_lut{$player->{jobID}},
"$directions_lut{$body} ($body)", "$directions_lut{$head} ($head)",
itemName({nameID => $player->{weapon}}),
itemName({nameID => $player->{shield}}),
itemName({nameID => $player->{shoes}}), $headTop, $headMid,
$headLow, "$haircolors{$player->{hair_color}} ($player->{hair_color})",
$player->{walk_speed});
if ($player->{dead}) {
$msg .= T("Player is dead.\n");
} elsif ($player->{sitting}) {
$msg .= T("Player is sitting.\n");
}
if ($degPlayerToYou >= $head * 45 - 29 && $degPlayerToYou <= $head * 45 + 29) {
$msg .= T("Player is facing towards you.\n");
}
$msg .= "-------------------------------------------------\n";
message $msg, "info";
return;
}
my $maxpl;
$msg = T("-----------Player List-----------\n" .
"# Name Sex Lv Job Dist Coord\n");
foreach my $player (@{$playersList->getItems()}) {
my ($name, $dist, $pos);
$name = $player->name;
if ($player->{guild} && %{$player->{guild}}) {
$name .= " [$player->{guild}{name}]";
}
$dist = distance($char->{pos_to}, $player->{pos_to});
$dist = sprintf("%.1f", $dist) if (index ($dist, '.') > -1);
$pos = '(' . $player->{pos_to}{x} . ', ' . $player->{pos_to}{y} . ')';
$maxpl = @{$playersList->getItems()};
$msg .= swrite(
"@<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<< @<< @<<<<<<<<<< @<<<< @<<<<<<<<<<",
[$player->{binID}, $name, $sex_lut{$player->{sex}}, $player->{lv}, $player->job, $dist, $pos]);
}
$msg .= "Total players $maxpl \n";
$msg .= "---------------------------------\n";
message($msg, "list");
}
ЗЫ: Если хочешь сильно изголиццо, можешь еще вот так изобразить:_pl.pl line 62.
Use of uninitialized value in string eq a
_pl.pl line 62.
Use of uninitialized value in string eq a
_pl.pl line 62.
Use of uninitialized value in string eq a
_pl.pl line 62.
Use of uninitialized value in string eq a
_pl.pl line 62.
-----------Player List-----------
# Name
1 shibinowa []
3 Wazeyomo
7 Unknown #5099899
Total guild players 3
Total players 9
---------------------------------
Код: Выделить всё
automacro warp {
inventory "Blue Gemstone" > 0
pubm /варп|dfhg/i,10
run-once 1
call {
$guild = непобедимые,xaos
$i = @player ($.lastpub)
$g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
if ($g ~ $guild) goto ok
goto end
:ok
do pl
:end
release pl
release warp
}
}
automacro pl {
console /Total players (\d+)/
run-once 1
exclusive 1
call {
$warp = 0
if ($.lastMatch1 > 9) goto da
goto net
:da
$x = @eval($::char->{pos}{x})
$y = @eval($::char->{pos}{y})
do sl 27 @eval($x + @rand(-5, 0)) @eval($y + @rand(2, 7))
pause 1
do warp $warp
pause 3
:net
do sl 27 @eval($x + @rand(0, 5)) @eval($y + @rand(2, 7))
pause 1
do warp $warp
pause 3
:end
release warp
}
}
а почему-бы и нет. Плагин может добавить глобальную переменную?Click писал(а):не сделаешь. ты же не будешь добавлять глобальных переменных?
помоему нетminiBot писал(а):а почему-бы и нет. Плагин может добавить глобальную переменную?