Страница 3 из 5
Добавлено: Чт сен 18, 2008 12:48 pm
Click
не так всё просто, там много где
sub updateItemList
Добавлено: Чт сен 18, 2008 1:03 pm
Rumata
в принципе если я тока эту строчку поковыряю по своему
Код: Выделить всё
$basePercent = sprintf("%.2f", $chars[$config{'char'}]{'exp'} / $chars[$config{'char'}]{'exp_max'} * 100) if $chars[$config{'char'}]{'exp_max'};
то есть $exp_max - максимально е хп моба
а $dmgTo нанесенный мобу дамаг
как правильней написать ее?
$basePercent = sprintf("%.2f", $dmgTo/ $exp_max * 100); так?
Добавлено спустя 39 секунд:
wx.pm ковыряю
Добавлено: Чт сен 18, 2008 1:06 pm
Click
откуда wx.pm знает что это за переменные? $dmgTo $exp_max
такие он вот понимает $chars[$config{'char'}]{'exp'}
Добавлено: Чт сен 18, 2008 1:07 pm
Rumata
нуи так же изменить и эту строкй в sub updateItemList
Код: Выделить всё
$percentB = "(".sprintf("%.2f",$totalBaseExp * 100 / $char->{exp_max})."%)";
этого будет достаточно?
Добавлено: Чт сен 18, 2008 1:09 pm
Click
ну так то да вроде по идее, сам не помню))
тока надо чтоб он знал те переменные которые ты ему пихаешь
Добавлено: Чт сен 18, 2008 1:11 pm
Rumata
а если мы перед этой строкой вставим как раз подпрограмму написанную выше где поиск моба а потом узнавание итогового дамага по ней, тогда переменая $dmgTo у нас будет под рукой.
Добавлено спустя 2 минуты 11 секунд:
просто надо ли изменять в двух местах или тока в одном хватит?
sub title
sub updateItemList
в каком из них?
Добавлено: Чт сен 18, 2008 1:17 pm
Click
не будет работать
надо это $monster->{dmgTo}
от сюда
Код: Выделить всё
if ($ID1 eq $accountID) {
if ((my $monster = $monstersList->getByID($ID2))) {
# You attack monster
$monster->{dmgTo}
и это 1015 Zombie 2000
Добавлено спустя 53 секунды:
$monster->{dmgFromYou} запутался может это)
Добавлено спустя 59 секунд:
титле это то что в титле окна )
Добавлено: Чт сен 18, 2008 1:20 pm
Rumata
а если так?
Код: Выделить всё
sub title {
my $self = shift;
my $title = shift;
my $charName = $chars[$config{'char'}]{'name'};
$charName .= ': ' if defined $charName;
my ($dmgTo, $dmgFrom, $dist, $pos, $name, $monsters);
my $mob = "Caramel";
my $exp_max = 4000;
$monsters = $monstersList->getItems();
if ($net->getState() == Network::IN_GAME) {
foreach my $monster (@{$monsters}) {
if ($monster->name eq $mob) {
$dmgTo = ($monster->{dmgTo} ne "") ? $monster->{dmgTo} : 0;
last;
};
my ($basePercent, $jobPercent, $zeny, $weight, $pos);
$basePercent = sprintf("%.2f", $dmgTo/ $exp_max * 100);
нам нужен $dmgTo, я проверил.
Добавлено спустя 1 минуту 43 секунды:
то есть , мы сначал перебираем список мобов на экране в поиске нужного моба Карамель, и если он есть устанавливается $dmgTo.
Добавлено: Чт сен 18, 2008 1:23 pm
Click
а ты запусти, работает?
Добавлено спустя 22 секунды:
вообще конечно, это какое то извращение
Добавлено: Чт сен 18, 2008 1:27 pm
Rumata
я попробую позже, бежать нада, просто ты можешь сказать надо ли изменять обе подпрограммы sub title и sub updateItemList, или достаточно sub updateItemList?
Добавлено спустя 1 минуту 38 секунд:
и еще вопрос - у тебя там где установлен интервал для обновления данных по экспе, реально хватит чтоб обновлялось раз в секнду

Добавлено: Чт сен 18, 2008 1:28 pm
Click
я вообще не знаю как это будет работать если у тебя в титле foreach
хз наверное получается что можно уже и без updateItemList
Добавлено: Чт сен 18, 2008 4:53 pm
Rumata
млинн даже тупая замена везде
$basePercent = sprintf("%.2f", 50);
ничего не дает, просто пустой бар получается, хотя должен наполовину закраситься

Добавлено: Чт сен 18, 2008 4:55 pm
Click
Добавлено: Чт сен 18, 2008 5:56 pm
Rumata
все оказалось проще

Клик ты сам весь интерфейс с нуля писал?

прикольные там ремарки стоят, я поржал
вобчем находим строку :
Код: Выделить всё
$self->{expBar}->SetValue($char->{exp} / $char->{exp_max} * 100) if ($char->{exp_max});
и меняем на блок:
Код: Выделить всё
my $mob = "Caramel";
my $mobXP = 3000;
my ($dmgTo, $dmgFrom, $dist, $pos, $name, $monsters);
$monsters = $monstersList->getItems();
foreach my $monster (@{$monsters}) {
if ($monster->name eq $mob) {
$dmgTo = ($monster->{dmgTo} ne "") ? $monster->{dmgTo} : 0;
$name = $monster->name;
last;
}
}
$self->{expBar}->SetValue($dmgTo / $mobXP * 100);
и все пашет
Добавлено спустя 2 минуты 8 секунд:
my $mob = "Caramel"; нужный нам моб
my $mobXP = 3000; его предпологаемое максимальное здоровье
ну и экспа бар - показывает насколько мы моба дерем

Добавлено: Чт сен 18, 2008 5:57 pm
Click
не с нуля, но там куча перелопаченного
да и стандартный я уже подлотал.
кстати меня больше интересует первый вариант с консолью.