Заставить Kore идти на такие локации как люти? / Warp-NPC

Общие вопросы по OpenKore обсуждаются здесь. Можно сказать, что это - основной раздел форума.
Возник вопрос? Вам сюда.

Модератор: 4epT

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Начинающий ботер
Начинающий
Сообщения: 31
Зарегистрирован: Пн ноя 06, 2006 10:53 am
Сервер RO:: Fable Ro

Проблемма с Варп НПС(бот не варпается, а идёт пешком)

Сообщение Начинающий ботер » Пн ноя 06, 2006 10:52 pm

Вот написал такую строку сам:gefen 125 71 prt_maze03 23 8 0 c r2 c r12 r3 c r1 n
Задачи: Нажать на НПС=>Next=>Вариант 2=>Next=>Вариант 12=>Вариант 3=>Next=>Вариант 1
Прописал в portals.txt
Чё-то бот не использует этот портал( Строку написал сам, без плагинов и т.д)
Как перекомпилировать порталы?
Может надо чё-нибудь в конфиге прописать?
Вопрос 2.
Что нужно прописать чтоб бот нормально ходил по порталам на карте prt_maze03 и собирал ягоды?

Аватара пользователя
piroJOKE
Модератор
Сообщения: 8207
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE » Пн ноя 06, 2006 10:56 pm

Была ли компиляция порталофф после занесения этой строки? Если не было, то она считай не пашет. Если ее почему-то не было, хм... попробуй добавить еще что-нибудь в порталы...
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

Начинающий ботер
Начинающий
Сообщения: 31
Зарегистрирован: Пн ноя 06, 2006 10:53 am
Сервер RO:: Fable Ro

Сообщение Начинающий ботер » Пн ноя 06, 2006 11:04 pm

Компиляции небыло(
Я хоть правильно написал диалог с Варп НПС?

Аватара пользователя
piroJOKE
Модератор
Сообщения: 8207
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE » Пн ноя 06, 2006 11:12 pm

Скорее всего нет. Когда пишешь ответы, то, что у тебя в меню "вариант 1", скорее всего r0. В общем... проведи Kore вручную, и запомни числа что приходится выбирать.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

Начинающий ботер
Начинающий
Сообщения: 31
Зарегистрирован: Пн ноя 06, 2006 10:53 am
Сервер RO:: Fable Ro

Сообщение Начинающий ботер » Вт ноя 07, 2006 12:28 am

Я бы провёл, но не знаю как это сделать( Подскажи) Это надо проделывать через клиент или как?

Аватара пользователя
piroJOKE
Модератор
Сообщения: 8207
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE » Вт ноя 07, 2006 1:08 am

Давай так сделаем: ты СНАЧАЛА читаешь доку, а ПОТОМ компостируешь мосги, окей?

forum/viewtopic.php?t=22
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

Начинающий ботер
Начинающий
Сообщения: 31
Зарегистрирован: Пн ноя 06, 2006 10:53 am
Сервер RO:: Fable Ro

Сообщение Начинающий ботер » Вт ноя 07, 2006 4:24 pm

Читал я этот гайд. Мне не понятно вот это:
Потом, подойти в wx-интерфейсе к NPC, и вручную проведи Kore через него. В это время тебе придется пользоваться командами talk, talk cont, talk resp ..., talk num ... .
Как это вручную?

Аватара пользователя
piroJOKE
Модератор
Сообщения: 8207
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE » Вт ноя 07, 2006 4:28 pm

Ты попробуй, а потом спросишь.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

Начинающий ботер
Начинающий
Сообщения: 31
Зарегистрирован: Пн ноя 06, 2006 10:53 am
Сервер RO:: Fable Ro

Сообщение Начинающий ботер » Ср ноя 08, 2006 9:43 pm

Я нажимаю на НПС, потом пишу talk..и вроде ничё(

Equilibrium Keeper
Энтузиаст
Сообщения: 60
Зарегистрирован: Пн ноя 06, 2006 5:14 pm
Контактная информация:

Сообщение Equilibrium Keeper » Ср ноя 08, 2006 10:15 pm

*Глухо рычит*
Твоя: gefen 125 71 prt_maze03 23 8 0 c r2 c r12 r3 c r1 n
Моя : geffen 125 71 prt_maze03 23 8 0 c r1 c r11 r2 c r0 n

Найди пять отличий.
Истина там, во тьме, и во тьме ты иди - мыслящий бродит во тьме.
В себя самого загляни, открой свою дорогу в Ничто.
В Ничто ты войди, во тьму, и пойми:
Пока ты во тьме, не может она быть Ничем - ведь там ты.

Начинающий ботер
Начинающий
Сообщения: 31
Зарегистрирован: Пн ноя 06, 2006 10:53 am
Сервер RO:: Fable Ro

Сообщение Начинающий ботер » Ср ноя 08, 2006 11:36 pm

на харосе играешь?

Equilibrium Keeper
Энтузиаст
Сообщения: 60
Зарегистрирован: Пн ноя 06, 2006 5:14 pm
Контактная информация:

Сообщение Equilibrium Keeper » Пт ноя 10, 2006 12:58 am

Харос? Это Хеавенс Анжер? Тогда уже нет.
Просто знаю, что варианты начинаются не с r1, а с r0, а Гефен пишется с двумя f.
Истина там, во тьме, и во тьме ты иди - мыслящий бродит во тьме.
В себя самого загляни, открой свою дорогу в Ничто.
В Ничто ты войди, во тьму, и пойми:
Пока ты во тьме, не может она быть Ничем - ведь там ты.

Начинающий ботер
Начинающий
Сообщения: 31
Зарегистрирован: Пн ноя 06, 2006 10:53 am
Сервер RO:: Fable Ro

Сообщение Начинающий ботер » Пт ноя 10, 2006 11:17 pm

ыыыы)
Вот с плагином поработал:
############################
# recordWarpNpc plugin for OpenKore by Damokles
#
# This software is open source, licensed under the GNU General Public
# License, version 2.
#
# To use it just type 'warprec' before you talk to a warp npc. Don't do
# anything between it. It'll record the NPC and the conversation seq and
# destination. They'll be combined in warpportals.txt.
#
# You can use 'warprec save' to trigger the save routine. You may need this
# if you only warp on the same map. Eg. Guild Warp
#
# This plugin should be in a subfolder of plugins like 'plugins/recordWarpNpc'.
#
# Config Options:
#
# recordWarpNpc_integrate (flag) - if is set to 1 it'll integrate the portals in
# portals.txt
# recordWarpNpc_recompile (flag) - integrate has to be enabled. Will reload and
# recompile the portals and portalsLOS.
############################

package recordWarpNpc;

use strict;
use Plugins;
use Globals qw(%config %npcs @npcsID %field $char);
use Settings;
use Log qw(message warning error debug);
use Utils;


Plugins::register('recordWarpNpc', 'Records Warp Npcs', \&onUnload);

my $hooks = Plugins::addHooks(
['packet/map_change', \&onMapChange, undef],
['packet/map_changed', \&onMapChanged, undef],
['packet/map_loaded', \&onMapLoaded, undef]
);

my $cmd = Commands::register(
["warprec", ['Records Warpnpc and conversation seq.',['','toggles record on/off'],['save','triggers save routine']], \&cmdWarprec],
["talk", "extends the Talk command", \&cmdTalk]
);

my $pluginDir = $Plugins::current_plugin_folder;
my %info;

sub onUnload {
Plugins::delHooks($hooks);
Commands::unregister($cmd);
undef %info;
}

sub cmdWarprec {
my ($self,$args) = @_;
my ($arg1) = $args =~ /^(\w+)/;
if ($info{recording}){
if ($arg1 eq 'save') {
saveDest({map=>$field{name},x=>$char->{pos}{x},y=>$char->{pos}{y}});
} else {
message "Warpnpc Recording OFF.\n",'recordWarpNpc';
%info = undef;
}
} else {
$info{recording} = 1;
message "Warpnpc Recording ON.\n",'recordWarpNpc';
}
}

sub onMapChange {
my (undef,$args) = @_;
return 1 unless $info{recording};
my %param = %{$args};
$param{map} =~ s/.gat$//;
saveDest(\%param);
}

sub onMapChanged {
$info{mapChanged} = 1 if $info{recording};
}

sub onMapLoaded {
return 1 unless $info{recording};
saveDest({map=>$field{name},x=>$char->{pos}{x},y=>$char->{pos}{y}});
}

sub cmdTalk {
my ($switch,$args) = @_;

return Commands::cmdTalk($switch,$args) unless $info{recording};

my ($arg1) = $args =~ /^(\w+)/;
my ($arg2) = $args =~ /^\w+ (\d+)/;

if ($arg1 =~ /^\d+$/ && exists $npcsID[$arg1]){
open NPC, ">>$pluginDir/warpnpcs.txt";
print NPC "$field{name} $npcs{$npcsID[$arg1]}{pos}{x} $npcs{$npcsID[$arg1]}{pos}{y}\n";
close NPC;
debug "Warpnpc added: $field{name} $npcs{$npcsID[$arg1]}{pos}{x} $npcs{$npcsID[$arg1]}{pos}{y}\n",'recordWarpNpc',2;
} elsif ($arg1 eq "resp" && $arg2 ne "") {
$info{seq} .= " r$arg2";
debug "Added conversation seq: r$arg2, compl:$info{seq}\n",'recordWarpNpc',2;
}

Commands::cmdTalk($switch,$args); #call real Handler
}

sub saveDest {
my $args = shift;
open DEST, ">>$pluginDir/dest.txt";
print DEST "$args->{map} $args->{x} $args->{y} 0$info{seq}\n";
close DEST;
debug "Warpnpc Dest: $args->{map} $args->{x} $args->{y} 0$info{seq}\n",'recordWarpNpc',2;
message "Warpnpc Recorded.\n",'recordWarpNpc';
%info = undef;
combine();
if ($config{recordWarpNpc_integrate}) {
integrate();
message "Warpnpcs added to portals.txt.\n",'recordWarpNpc';
if ($config{recordWarpNpc_recompile}) {
message "Recompiling Portals.\n",'recordWarpNpc';
Settings::parseReload("portals");
Misc::compilePortals() if Misc::compilePortals_check();
}
}
}

sub combine {
my @dest;
my $source;
my $src_tmp;
my $desc_tmp;

removeDupes("$pluginDir/dest.txt");
removeDupes("$pluginDir/warpnpcs.txt");

open (IN, "<$pluginDir/dest.txt");

@dest = <IN>;
chomp (@dest);

close (IN);
open (IN, "<$pluginDir/warpnpcs.txt");
open (OUT, ">$pluginDir/warpportals.txt");

while (<IN>){
chomp ($_);
$source = $src_tmp = $_;
$src_tmp =~ /(^\w+)\s/;
$src_tmp = $1;
foreach (@dest){
$desc_tmp = $_;
$desc_tmp =~ /(^\w+)\s/;
print OUT "$source $_\n" unless ($1 eq $src_tmp);
}
}
close (IN);
close (OUT);
}

sub removeDupes {
my $file = shift;
my @data;
my @output;
my $temp;
my $dupe;

open IN, "<$file";
@data = <IN>;
close IN;

while ($temp = shift @data){
$dupe = 0;
foreach (@data){
if ($temp eq $_){
$dupe = 1;
last;
}
}
push (@output,$temp) unless $dupe;
}

@output = sort (@output);

open OUT, ">$file";
print OUT @output;
close OUT;
}

sub integrate {
my $start;
my $portal;
my @portals;
my @portals_temp;

open PORTALS, "<$Settings::tables_folder/portals.txt";
@portals = <PORTALS>;
close PORTALS;
while($portal = shift @portals) {
next if $portal eq "\n";
if ($portal eq "#####[WarpNPCs]#####\n"){
$start = 1;
}
if ($portal eq "#####[/WarpNPCs]#####\n"){
push (@portals_temp,@portals);
last;
}
push (@portals_temp,$portal) unless $start;
}
open PORTALS, ">$Settings::tables_folder/portals.txt";
open WARP, "<$pluginDir/warpportals.txt";
print PORTALS @portals_temp;
print PORTALS "\n#####[WarpNPCs]#####\n";
print PORTALS <WARP>;
print PORTALS "#####[/WarpNPCs]#####\n";
close PORTALS;
close WARP;
}

1;
Где здесь координаты?

Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse » Сб ноя 11, 2006 1:59 am

Какие кординаты???? Естот плагин пашет на аватомате.
Поставь себе. Запусти поговори с нпс и все.. он уже будет у тебя в порталах!

И плз. Выложи его прикреплённым файлом.

Аватара пользователя
piroJOKE
Модератор
Сообщения: 8207
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE » Сб ноя 11, 2006 2:02 am

Неее, там надо давать команду. Типо "начать запись". Потом побакланить с НПЦ. Как токо произойдет варп, запись сама закончиццо.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

Ответить