А ваще мне это не сильно нравится, изменять код ради перевода...
Ну, извините. Проект предъявляет претензии на многоязычность и обязан соответствовать. Иначе какого фига "@A uses <skill> on @B" в файл-переводчик включено, а примитивное "@A attacks @B" нет?
Как править код - уже знаю. Копи-пастом с аналогичного блока "uses".
Смущает только то, что поедет половина привязок на misc.pm в openkore.pot... Ну да ладно, когда закончу с переводом - поправлю и его, тогда можно будет внедрять в SVN для удобства датчан и тайцев.
Добавлено спустя 49 минут 56 секунд:
Итак, новый вариант пагчега, который даёт много переводимых строчек для всех возможных вариантов кто-кого-лупит.
Код: Выделить всё
sub attack_string {
my ($source, $target, $damage, $delay) = @_;
assert(UNIVERSAL::isa($source, 'Actor')) if DEBUG;
assert(UNIVERSAL::isa($target, 'Actor')) if DEBUG;
# You
if ($source->isa('Actor::You')) {
if ($target->isa('Actor::Player')) {
return TF("You attack player %s (%d) - Dmg: %s (delay %s)\n", $target->name, $target->{binID}, $damage, $delay);
} elsif ($target->isa('Actor::Monster')) {
return TF("You attack monster %s (%d) - Dmg: %s (delay %s)\n", $target->name, $target->{binID}, $damage, $delay);
} elsif ($target->isa('Actor::Unknown')) {
return TF("You attack Unknown #%s (%d) - Dmg: %s (delay %s)\n", $target->{nameID}, $target->{binID}, $damage, $delay);
}
# Player
} elsif ($source->isa('Actor::Player')) {
if ($target->isa('Actor::You')) {
return TF("Player %s (%d) attacks you - Dmg: %s (delay %s)\n", $source->name, $source->{binID}, $damage, $delay);
} elsif ($target->isa('Actor::Player')) {
return TF("Player %s (%d) attacks player %s (%d) - Dmg: %s (delay %s)\n", $source->name, $source->{binID}, $target->name, $target->{binID}, $damage, $delay);
} elsif ($target->isa('Actor::Monster')) {
return TF("Player %s (%d) attacks monster %s (%d) - Dmg: %s (delay %s)\n", $source->name, $source->{binID}, $target->name, $target->{binID}, $damage, $delay);
} elsif ($target->isa('Actor::Unknown')) {
return TF("Player %s (%d) attacks Unknown #%s (%d) - Dmg: %s (delay %s)\n", $source->name, $source->{binID}, $target->{nameID}, $target->{binID}, $damage, $delay);
}
# Monster
} elsif ($source->isa('Actor::Monster')) {
if ($target->isa('Actor::You')) {
return TF("Monster %s (%d) attacks you - Dmg: %s (delay %s)\n", $source->name, $source->{binID}, $damage, $delay);
} elsif ($target->isa('Actor::Player')) {
return TF("Monster %s (%d) attacks player %s (%d) - Dmg: %s (delay %s)\n", $source->name, $source->{binID}, $target->name, $target->{binID}, $damage, $delay);
}
# Not sure if monster can attack monster in RO
# elsif ($target->isa('Actor::Monster')) { return TF("Monster %s (%d) attacks monster %s (%d) - Dmg: %s (delay %s)\n", $source->name, $source->{binID}, $target->name, $target->{binID}, $damage, $delay); }
elsif ($target->isa('Actor::Unknown')) {
return TF("Monster %s (%d) attacks Unknown #%s (%d) - Dmg: %s (time %s)\n", $source->name, $source->{binID}, $target->{nameID}, $target->{binID}, $damage, $delay);
}
# Unknown
} elsif ($source->isa('Actor::Unknown')) {
if ($target->isa('Actor::You')) {
return TF("Unknown #%s (%d) attacks you - Dmg: %s (delay %s)\n", $source->{nameID}, $source->{binID}, $damage, $delay);
} elsif ($target->isa('Actor::Player')) {
return TF("Unknown #%s (%d) attacks player %s (%d) - Dmg: %s (delay %s)\n", $source->{nameID}, $source->{binID}, $target->name, $target->{binID}, $damage, $delay);
} elsif ($target->isa('Actor::Monster')) {
return TF("Unknown #%s (%d) attacks monster %s (%d) - Dmg: %s (delay %s)\n", $source->{nameID}, $source->{binID}, $target->name, $target->{binID}, $damage, $delay);
} elsif ($target->isa('Actor::Unknown')) {
return TF("Unknown #%s (%d) attacks Unknown #%s (%d) - Dmg: %s (delay %s)\n", $source->{nameID}, $source->{binID}, $target->{nameID}, $target->{binID}, $damage, $delay);
}
}
}
Как легко заметить, одна из строчек закомментирована, ибо я крайне сомневаюсь, что в РО моб может бить моба. Это ж вам не ВоВка, где волки правдоподобно охотятся на коров и зайцев.
Зы. Может возникнуть резонный вопрос - а где же гомункул? А вот нет его. Точнее есть, но где-то в другом месте прописан - НЕ ЗДЕСЬ.
Добавлено спустя 1 час 7 минут 22 секунды:
13:33 - Найдена потерянная разработчиками строчка ТF - "Item Exists: %s (%d) x %d\n"